Token导航 LogoToken导航

MCP Server · 开发工具

Userful Mcps

A collection of standalone Python scripts that implement Model Context Protocol (MCP) servers for various utility functions. Each server provides specialized tools that can be used by AI assistants or other applications that support the MCP protocol.

stdio官方级别未说明来源级核验工具 7
自动化处理Python开发工具

快速开始

作者 / 组织
daltonnyx
提供方
daltonnyx

工具数量

7

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

5

仓库热度

收录来源

3 个

MCP.so

选型结论

Userful Mcps 属于开发工具类 MCP Server,公开资料标注 7 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install uv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 7 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

有用的模型上下文协议服务器(MCPS)

一组实现模型上下文协议的独立Python脚本 用于各种实用功能的(MCP)服务器。每台服务器都提供专业 AI助手或其他支持 MCP协议。

什么是MCP?

模型上下文协议(MCP)是人工智能助手的一种标准化方式 与外部工具和服务交互。它允许AI模型扩展其 通过调用MCP服务器提供的专用函数来实现功能。 通信通过标准输入/输出(stdio)使用JSON消息进行。

可用服务器

每个MCP服务器都设计为使用Python环境管理器运行,如 uv.

YouTube数据提取器(ytdlp)

使用yt-dlp从YouTube视频中提取信息的服务器。

工具:

  • 摘录章节:从YouTube视频中获取章节信息。
  • 提取字幕:从YouTube视频中获取特定内容的字幕

章节或整个视频。

MCP服务器配置:

"mcpServers": {
  "ytdlp": {
    "name": "youtube", // Optional friendly name for the client
    "command": "uv",
    "args": [
      "run",
      "--directory", "
/useful-mcps/ytdlp", // Path to the MCP directory containing pyproject.toml
      "--", // Separator before script arguments, if any
      "ytdlp_mcp" // Match the script name defined in pyproject.toml [project.scripts]
    ]
    // 'cwd' is not needed when using --directory
  }
}

Word文档处理器(docx_replace)

用于处理Word文档的服务器,包括模板处理和PDF 转换。

工具:

  • 流程模板:替换Word模板中的占位符并进行管理

内容块。

  • 获取模板密钥:从Word文档中提取所有替换键

模板。

  • 转换为PDF:将Word文档(docx)转换为PDF格式。

MCP服务器配置:

"mcpServers": {
  "docx_replace": {
    "name": "docx", // Optional friendly name
    "command": "uv",
    "args": [
      "run",
      "--directory", "
/useful-mcps/docx_replace", // Path to the MCP directory
      "--",
      "docx_replace_mcp" // Match the script name defined in pyproject.toml
    ]
  }
}

PlantUML渲染器(plantuml)

使用PlantUML服务器渲染PlantUML图的服务器(通常通过 Docker)。

工具:

  • 渲染图:将PlantUML文本转换为图表图像(例如PNG)。

MCP服务器配置:

"mcpServers": {
  "plantuml": {
    "name": "plantuml", // Optional friendly name
    "command": "uv",
    "args": [
      "run",
      "--directory", "
/useful-mcps/plantuml", // Path to the MCP directory
      "--",
      "plantuml_server" // Match the script name defined in pyproject.toml
    ]
  }
}

_(注意:需要一个运行中的PlantUML服务器,可以通过以下方式访问和管理 服务中实现的Docker)。_

美人鱼渲染器(mermaid)

一个使用mercurchart.com API绘制人鱼图的服务器。

工具:

  • 渲染美人鱼图表:通过创建一个PNG图像将Mermaid代码转换为PNG图像

mermaidchart.com上的文件。

MCP服务器配置:

"mcpServers": {
  "mermaid": {
    "name": "mermaid", // Optional friendly name
    "command": "uv",
    "args": [
      "run",
      "--directory", "
/useful-mcps/mermaid", // Path to the MCP directory
      "--",
      "mermaid_mcp" // Match the script name defined in pyproject.toml
    ],
    "env": { // Environment variables needed by the MCP
        "MERMAID_CHART_ACCESS_TOKEN": "YOUR_API_TOKEN_HERE"
    }
  }
}

_(注意:需要将Mermaid Chart API访问令牌设置为环境 变量)。_

Rss订阅到markdown(rss2md)

用于将rss提要内容转换为带有日期过滤的markdown格式的服务器。

工具:

  • fetch_rss_to_markdown:获取RSS提要,按日期过滤文章,以及

返回格式化为Markdown列表的匹配文章。.

MCP服务器配置:

"mcpServers": {
  "mermaid": {
    "name": "rss2md", // Optional friendly name
    "command": "uv",
    "args": [
      "run",
      "--directory", "
/useful-mcps/rss2md", // Path to the MCP directory
      "--",
      "rss2md_mcp" // Match the script name defined in pyproject.toml
    ],
    "env": { // Environment variables needed by the MCP
    }
  }
}

安装

  1. 克隆存储库:
   git clone https://github.com/daltonnyx/useful-mcps.git # Replace with the actual repo URL if different
   cd useful-mcps
  1. 安装 uv: 如果你没有 uv,安装它:
   pip install uv
   # or follow instructions at https://github.com/astral-sh/uv
  1. 依赖关系: 依赖关系由MCP通过以下方式管理 pyproject.toml.

uv run 通常会在虚拟环境中自动安装它们 首次使用以下命令运行MCP时的环境 --directory.

用法

运行服务器

建议使用以下命令运行每个MCP服务器 uv run --directory 指向特定MCP的目录。 uv 处理虚拟环境 以及基于 pyproject.toml 发现在那里。

示例(从根开始 useful-mcps 目录):

# Run the YouTube MCP
uv run --directory ./ytdlp ytdlp_mcp

# Run the Mermaid MCP (ensure token is set in environment)
uv run --directory ./mermaid mermaid_mcp

或者,配置您的MCP客户端(如示例JSON配置 上面)执行 uv run --directory ... 直接命令。

连接到服务器

使用配置MCP客户端应用程序以启动所需的服务器 command 和 args “MCP服务器配置”示例中所示的结构 对于每台服务器。确保 command 指向您的 uv 可执行文件和 args 正确指定 --directory 带有MCP文件夹的路径和 要运行的脚本名称。使用传递必要的环境变量(如API令牌) 这 env 财产。

工具特定使用示例

这些显示了示例 arguments 您将发送至 call_tool 功能 相应的MCP服务器。

YouTube数据提取器

摘录章节
{
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}
提取字幕
{
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "language": "en",
  "chapters": [
    {
      "title": "Introduction",
      "start_time": "00:00:00",
      "end_time": "00:01:30"
    }
  ]
}

Word文档处理器

流程模板
{
  "template_file": "/path/to/template.docx",
  "replacements": {
    "name": "John Doe",
    "date": "2023-05-15"
  },
  "blocks": {
    "optional_section": true,
    "alternative_section": false
  },
  "output_filename": "/path/to/output.docx"
}

_(注: template_file 和 docx_file 还可以接受base64编码的字符串 而不是路径)_

获取模板密钥
{
  "template_file": "/path/to/template.docx"
}
转换为PDF
{
  "docx_file": "/path/to/document.docx",
  "pdf_output": "/path/to/output.pdf"
}

PlantUML渲染器

渲染图
{
  "input": "participant User\nUser -> Server: Request\nServer --> User: Response",
  "output_path": "/path/to/save/diagram.png"
}

_(注: input 也可以是通往 .puml 文件)_

美人鱼渲染器

渲染美人鱼图表
{
  "mermaid_code": "graph TD;\n    A-->B;\n    A-->C;\n    B-->D;\n    C-->D;",
  "output_path": "/path/to/save/mermaid.png",
  "theme": "default" // Optional, e.g., "default", "dark", "neutral", "forest"
}

发展

添加新的MCP服务器

  1. 为您的MCP创建一个新目录(例如。, my_new_mcp).
  2. 在目录中,创建:

- pyproject.toml:定义项目元数据、依赖关系和脚本 入口点(例如。, [project.scripts] 剖面图 my_new_mcp = "my_new_mcp:main"). - pyrightconfig.json:(可选)用于类型检查。 - 你的主Python文件(例如。, my_new_mcp.py):实现MCP逻辑 使用 mcp 库(见下面的模板)。

  1. 实现所需的类和函数(serve, list_tools,

call_tool).

基本模板(my_new_mcp.py):

import json
import logging
import asyncio
from typing import List, Dict, Any, Optional
# Assuming mcp library is installed or available
# from mcp import Server, Tool, TextContent, stdio_server
# Placeholder imports if mcp library structure is different
from typing import Protocol # Using Protocol as placeholder

# Placeholder definitions if mcp library isn't directly importable here
class Tool(Protocol):
    name: str
    description: str
    inputSchema: dict

class TextContent(Protocol):
    type: str
    text: str

class Server:
    def __init__(self, name: str): pass
    def list_tools(self): pass # Decorator
    def call_tool(self): pass # Decorator
    def create_initialization_options(self): pass
    async def run(self, read_stream, write_stream, options): pass

# Placeholder context manager
class stdio_server:
    async def __aenter__(self): return (None, None) # Dummy streams
    async def __aexit__(self, exc_type, exc, tb): pass

# Pydantic is often used for schema definition
# from pydantic import BaseModel
# class MyInput(BaseModel):
#     param1: str
#     param2: int

class MyInputSchema: # Placeholder if not using Pydantic
    @staticmethod
    def model_json_schema():
      return {"type": "object", "properties": {"param1": {"type": "string"}, "param2": {"type": "integer"}}, "required": ["param1", "param2"]}

class MyTools:
    TOOL_NAME = "my.tool"

class MyService:
    def __init__(self):
        # Initialize resources if needed
        pass

    def my_function(self, param1: str, param2: int) -> dict:
        # Implement your tool functionality
        logging.info(f"Running my_function with {param1=}, {param2=}")
        # Replace with actual logic
        result_content = f"Result: processed {param1} and {param2}"
        return {"content": result_content}

async def serve() -> None:
    logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
    server = Server("mcp-my-service")
    service = MyService()

    @server.list_tools()
    async def list_tools() -> list[Tool]:
        logging.info("list_tools called")
        return [
            Tool(
                name=MyTools.TOOL_NAME,
                description="Description of my tool",
                # Use Pydantic's schema or manually define
                inputSchema=MyInputSchema.model_json_schema(),
            ),
        ]

    @server.call_tool()
    async def call_tool(name: str, arguments: dict) -> list[TextContent]:
        logging.info(f"call_tool called with {name=}, {arguments=}")
        try:
            if name == MyTools.TOOL_NAME:
                # Add validation here if not using Pydantic
                param1 = arguments.get("param1")
                param2 = arguments.get("param2")
                if param1 is None or param2 is None:
                     raise ValueError("Missing required arguments")

                result = service.my_function(param1, int(param2)) # Ensure type conversion if needed
                logging.info(f"Tool executed successfully: {result=}")
                return [TextContent(type="text", text=json.dumps(result))] # Return JSON string
            else:
                logging.warning(f"Unknown tool requested: {name}")
                raise ValueError(f"Unknown tool: {name}")
        except Exception as e:
            logging.error(f"Error executing tool {name}: {e}", exc_info=True)
            # Return error as JSON
            error_payload = json.dumps({"error": str(e)})
            return [TextContent(type="text", text=error_payload)]

    options = server.create_initialization_options()
    logging.info("Starting MCP server...")
    async with stdio_server() as (read_stream, write_stream):
        await server.run(read_stream, write_stream, options)
    logging.info("MCP server stopped.")

def main():
    # Entry point defined in pyproject.toml `[project.scripts]`
    try:
        asyncio.run(serve())
    except KeyboardInterrupt:
        logging.info("Server interrupted by user.")

if __name__ == "__main__":
    # Allows running directly via `python my_new_mcp.py` for debugging
    main()

测试

从根目录使用pytest运行测试:

pytest tests/

_(确保安装了测试依赖项,可能是通过 uv pip install pytest 或通过添加 pytest 到其中一个中的开发依赖项 这 pyproject.toml 文件)。_

许可证

MIT许可证

贡献

欢迎投稿!请随时提交拉取请求。

工具与能力

工具数量

7

资源数量

0

提示词数量

0

能力标签

developer-toolsmermaidmcp-servermodel-context-protocol-serversdocx-replaceAI工具Python本地部署

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 7 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 3 个目录同时收录,信息可以交叉核对。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Userful Mcps

MCP.so · 本页

7stdio有3 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Userful Mcps 怎么安装?

公开资料给出的安装命令是 pip install uv,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Userful Mcps 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Userful Mcps 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Userful Mcps 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Userful Mcps 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP