MCP Server (mcp-tools)
danfmaia
README
MCP 服务器 (mcp-tools)
本项目包含一个通用的 MCP 服务器,旨在为 AI 代理提供工具,通过 stdin/stdout 使用模型上下文协议 (MCP) 进行通信。
提供的工具
服务器目前提供以下工具,可以通过 call_tool
端点调用:
check_markdown_link_file
- 描述: 检查单个指定 Markdown 文件中的 HTTP/HTTPS 链接。
- 参数:
file_path
(字符串, 必需): Markdown 文件的路径(相对于项目根目录或绝对路径)。
arguments
示例:{ "file_path": "docs/usage.md" }
- 输出: 文本报告,详细说明文件中找到的链接的状态(总数、有效、损坏、错误)。
check_markdown_link_files
- 描述: 检查提供的 Markdown 文件列表中的 HTTP/HTTPS 链接。
- 参数:
file_paths
(字符串列表, 必需): Markdown 文件路径的列表(相对于项目根目录或绝对路径)。
arguments
示例:{ "file_paths": [ "README.md", "docs/requirements/link_checker_tool_enhancements_reqs.md" ] }
- 输出: 汇总的文本报告,总结所有已处理文件的链接状态。
check_markdown_link_directory
- 描述: 递归扫描指定目录中的
*.md
文件,并检查其中的 HTTP/HTTPS 链接。 - 参数:
directory_path
(字符串, 必需): 要扫描的目录的路径。
arguments
示例:{ "directory_path": "docs/" }
- 输出: 汇总的文本报告,总结目录中找到的所有 Markdown 文件的链接状态。
check_markdown_links_project
- 描述: 扫描整个项目中的
*.md
文件,排除根目录.gitignore
文件中列出的文件,并检查剩余文件中的 HTTP/HTTPS 链接。 - 参数: 无。
arguments
示例:{}
- 输出: 汇总的文本报告,总结项目中找到的所有已处理 Markdown 文件的链接状态(遵循
.gitignore
)。
设置 & 使用 (使用 Makefile)
本项目使用 uv
进行环境和依赖管理,并通过 Makefile
进行编排。
-
导航到项目目录: 确保您位于_此_项目 (
mcp-server
) 的根目录中。cd /path/to/mcp-server
-
安装依赖项(包括开发/测试): 如果本地虚拟环境 (
.venv
) 不存在,此命令将创建它,并使用uv
安装所有必需的软件包。make install-dev
-
运行测试 & 覆盖率:
make test
此命令使用
pytest
运行所有单元测试,并使用coverage.py
生成代码覆盖率报告。- 测试运行配置为如果总覆盖率降至 85% 以下则失败(请参阅
Makefile
)。 - 截至 2025-04-04,覆盖率状态为:
- 总体:85%
src/mcp_server/server.py
: 81% (主要处理程序已覆盖;main
循环未测试)src/mcp_server/tools/link_checker.py
: 89% (核心逻辑已覆盖;状态检查中的一些边缘情况未测试)
- 测试运行配置为如果总覆盖率降至 85% 以下则失败(请参阅
-
Lint & 格式化代码: 使用
ruff
检查 linting 错误并根据项目标准格式化代码。make lint
-
运行服务器(手动): 服务器监听 stdin/stdout。
make run
(注意:手动交互需要发送正确构建的 JSON-RPC 消息,包括
initialize
和initialized
,然后再发送call_tool
。) -
清理: 删除虚拟环境和缓存文件。
make clean
Cursor MCP 集成 (Linux)
可以使用 ~/.cursor/mcp.json
中的以下全局配置将此服务器作为 MCP 工具集成到 Cursor 中(您可能需要创建此文件/目录):
{
"mcpServers": {
"local-link-checker": {
"name": "Local Link Checker", // Cursor 中显示的名称
"type": "command",
// 使用此项目 venv 中 python 可执行文件的绝对路径
"command": "/absolute/path/to/mcp-server/.venv/bin/python",
"args": [
"-m", // 运行模块
"mcp_server.server" // 要运行的服务器模块
]
// 可选:如果需要,定义工作目录(通常由 -m 处理)
// "cwd": "/absolute/path/to/mcp-server"
}
}
}
集成的重要说明:
- 绝对路径: 您必须将
/absolute/path/to/mcp-server
替换为系统上此项目目录的正确绝对路径。 - 虚拟环境: 此配置假定您已首先运行
make install-dev
以创建.venv
并在该项目目录中安装依赖项。 - 工作目录 & 文件路径: 通过
python -m
运行时,服务器的工作目录通常是项目根目录 (/absolute/path/to/mcp-server
)。 因此,在调用该工具时(例如,@Local Link Checker
),file_path
参数应相对于此项目根目录(例如,对于根目录中的文件,file_path: test_links.md
)或绝对路径。 - 重启 Cursor: 添加或修改
~/.cursor/mcp.json
后,您必须重启 Cursor 才能使更改生效。
之前使用不同方法(如 uv run
或 shell 包装器)的集成尝试失败,原因是 Cursor 在 Linux 上的进程执行环境存在问题。 使用项目自己的虚拟环境的直接 python -m
方法是被证明有效的配置。
添加新工具
- 在
handle_list_tools
(src/mcp_server/server.py
) 中定义工具的 schema。 - 在
handle_call_tool
(src/mcp_server/server.py
) 中的一个新的elif name == "your-tool-name":
块下实现工具的逻辑。- 根据需要在
src/mcp_server/tools/
下的单独文件中创建辅助函数。 - 在
tests/
中为辅助函数添加单元测试。
- 根据需要在
- 将任何新依赖项添加到
pyproject.toml
。 - 如果添加了新的_仅测试_依赖项,请更新
Makefile
中的install-dev
目标(基本依赖项应由install-dev
中的uv sync
处理)。 - 更新此 README。
贡献
欢迎贡献! 请遵循标准编码规范,并确保在提交 pull request 之前通过测试 (make test
)。
许可证
[在此处指定您的许可证]
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。