使用说明
MCP服务器(MCP工具)
该项目包含一个通用的MCP服务器,旨在为AI代理提供工具,使用模型上下文协议(MCP)通过stdin/stdout进行通信。
提供的工具
服务器目前提供以下工具,可通过 call_tool 端点:
check_markdown_link_file
- 说明: 检查单个指定Markdown文件中的HTTP/HTTPS链接。
- 论据:
file_path(string,必填):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(string,必填):要扫描的目录的路径。
- 示例
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 -
安装依赖项(包括dev/test): 此命令创建本地虚拟环境(
.venv)如果它不存在,请使用安装所有必要的软件包uv.make install-dev -
运行测试和覆盖范围:
make test此命令使用以下命令运行所有单元测试
pytest并使用以下命令生成代码覆盖率报告coverage.py.- 测试运行配置为 如果总覆盖率降至85%以下,则失败 (参见
Makefile). - 截至2025-04-04,覆盖状态为:
- 总体:85%
src/mcp_server/server.py81%(涵盖主要处理人员;main回路未测试)src/mcp_server/tools/link_checker.py:89%(涵盖核心逻辑;状态检查中的一些边缘情况未经测试)
- 测试运行配置为 如果总覆盖率降至85%以下,则失败 (参见
-
棉绒和格式代码: 用途
ruff检查linting错误,并根据项目标准格式化代码。make lint -
运行服务器(手动): 服务器监听stdin/stdout。
make run(注意:手动交互需要发送正确框架的JSON-RPC消息,包括
initialize和initialized之前call_tool.) -
清理: 删除虚拟环境和缓存文件。
make clean
光标MCP集成(Linux)
此服务器可以使用以下全局配置作为MCP工具与Cursor集成 ~/.cursor/mcp.json (您可能需要创建此文件/目录):
{
"mcpServers": {
"local-link-checker": {
"name": "Local Link Checker", // Name displayed in Cursor
"type": "command",
// Use the absolute path to the python executable within THIS project's venv
"command": "/absolute/path/to/mcp-server/.venv/bin/python",
"args": [
"-m", // Run module
"mcp_server.server" // The server module to run
]
// Optional: Define the working directory if needed (usually handled by -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),thefile_path参数应该与该项目根相关(例如。,file_path: test_links.md对于根目录下的文件)或绝对路径。 - 重新启动光标: 添加或修改后
~/.cursor/mcp.json,您必须重新启动Cursor才能使更改生效。
以前使用不同方法的集成尝试(如 uv run 或shell包装器)由于Linux上Cursor的进程执行环境问题而失败。直接 python -m 使用项目自己的虚拟环境的方法是配置被证明是有效的。
添加新工具
- 在中定义工具的模式
handle_list_tools(src/mcp_server/server.py). - 在新的环境下实现工具的逻辑
elif name == "your-tool-name":把…的车堵住handle_call_tool(src/mcp_server/server.py).- 在单独的文件中创建辅助函数
src/mcp_server/tools/根据需要。 - 为中的辅助函数添加单元测试
tests/.
- 在单独的文件中创建辅助函数
- 将任何新的依赖项添加到
pyproject.toml. - 更新
install-dev目标在Makefile如果新 仅测试 添加依赖关系(基本依赖关系应由uv sync在...之内install-dev). - 更新此自述文件。
贡献
欢迎投稿!请遵循标准编码实践并确保测试通过(make test)在提交pull请求之前。
许可证
[在此处指定您的许可证]