项目简介
Standards Finder 是一个功能全面的Python MCP服务器,专门用于获取、解析和阅读来自IETF(互联网工程任务组)网站的RFC文档、Internet Draft草案以及OpenID基金会规范。它通过标准化的Model Context Protocol (MCP) 接口,向大型语言模型(LLM)客户端提供结构化的标准文档信息和操作工具,支持LLM程序化地交互和理解各种技术标准。
主要功能点
- RFC文档: 根据RFC编号获取文档、按关键词搜索RFC、提取RFC特定章节、解析HTML和TXT格式。
- Internet Draft草案: 根据名称获取(自动检测最新版本)、按关键词搜索、提取特定章节、支持版本感知处理。
- OpenID基金会规范: 根据名称获取、按关键词搜索、提取特定章节、支持多种OpenID规范。
- IETF工作组文档: 获取任何IETF工作组的所有RFC和活跃的Internet Drafts,包括工作组元数据和灵活的过滤选项。
- 通用功能: 智能缓存提高性能、提取全面的元数据(作者、日期、摘要等)、支持多种输出格式(完整文档、仅元数据、仅章节)、强大的错误处理、符合MCP协议和JSON-RPC 2.0标准、支持Stdio和HTTP双传输模式、实时进度通知、兼容MCP Inspector进行调试。
安装步骤
Standards Finder 服务器仅依赖Python标准库,无需额外安装依赖包。
-
直接运行 (Stdio模式,默认): 在项目目录下,使用Python 3直接运行 'standard_finder.py' 文件即可启动服务器。
python3 standard_finder.py服务器将在标准输入/输出(Stdio)上运行,适用于MCP客户端作为子进程启动的场景。
-
HTTP模式运行: 如需通过HTTP访问服务器,可指定 '--http' 参数,默认为3000端口。
python3 standard_finder.py --http或指定自定义端口:
python3 standard_finder.py --http --port 8080服务器启动后,可以通过 'http://localhost:[端口]/health' 进行健康检查,MCP客户端通过 'http://localhost:[端口]/mcp' 端点进行通信。
-
日志配置: 您可以通过 '--log-level' (可选值: DEBUG, INFO, WARNING, ERROR) 和 '--log-dir' 参数自定义日志级别和存储目录。
python3 standard_finder.py --log-level DEBUG --log-dir /var/log/standards_finder
服务器配置 (MCP客户端)
Standards Finder 作为MCP服务器,需要MCP客户端进行相应的配置才能连接和使用。以下是配置示例,请在您的MCP客户端配置文件中添加:
Stdio模式配置示例 (推荐): 此配置使MCP客户端将 'standard_finder.py' 作为子进程启动,并通过标准I/O进行通信。
{ "mcpServers": { "standards-finder": { "command": "python3", "args": ["standard_finder.py"], "cwd": "/path/to/mcp-standard-finder", // 请将此路径替换为standard_finder.py文件所在的实际完整路径 "disabled": false, // 设置为false以启用此服务器 "autoApprove": [] // 可选,自动批准的权限列表 } } }
- 'standards-finder': MCP服务器的名称,客户端将用此名称引用该服务器。
- 'command': 启动服务器的命令,通常是'python3'。
- 'args': 传递给命令的参数列表,这里是服务器脚本的名称'standard_finder.py'。
- 'cwd': 服务器进程的工作目录,请务必设置为'standard_finder.py'文件所在的完整路径。
- 'disabled': 设置为'false'以启用此服务器。
HTTP模式配置示例: 此配置使MCP客户端通过HTTP协议连接到已在指定地址和端口运行的Standards Finder服务器。
{ "mcpServers": { "standards-finder-http": { "url": "http://localhost:3000/mcp", // MCP服务器的访问URL,请根据您实际运行的服务器地址和端口进行调整 "transport": "http", // 指定传输协议为HTTP "disabled": false, // 设置为false以启用此服务器 "autoApprove": [] // 可选,自动批准的权限列表 } } }
- 'standards-finder-http': HTTP模式下MCP服务器的名称。
- 'url': MCP服务器的访问URL,请根据您的服务器实际运行地址和端口进行调整。
- 'transport': 指定客户端应使用HTTP协议与服务器通信。
基本使用方法 (MCP客户端)
连接成功后,您可以通过MCP客户端调用该服务器提供的工具或读取资源:
-
调用工具 (Tools):
- 获取RFC文档元数据:
通过调用 'get_rfc' 工具,获取RFC 2616的元数据。
mcp.call_tool('get_rfc', {'number': '2616', 'format': 'metadata'}) - 搜索Internet Draft草案:
通过调用 'search_internet_drafts' 工具,搜索关于 "http2 protocol" 的Internet Draft草案(最多5条)。
mcp.call_tool('search_internet_drafts', {'query': 'http2 protocol', 'limit': 5}) - 获取OpenID Connect Core规范:
通过调用 'get_openid_spec' 工具,获取OpenID Connect Core规范的元数据。
mcp.call_tool('get_openid_spec', {'name': 'openid-connect-core', 'format': 'metadata'}) - 获取IETF工作组文档:
通过调用 'get_working_group_documents' 工具,获取OAuth工作组的所有RFC和Internet Draft草案(最多10条)。
mcp.call_tool('get_working_group_documents', {'working_group': 'oauth', 'limit': 10})
- 获取RFC文档元数据:
通过调用 'get_rfc' 工具,获取RFC 2616的元数据。
-
读取资源 (Resources):
- 读取RFC文档:
通过资源URI 'rfc://2616' 读取RFC 2616的完整内容。
mcp.read_resource('rfc://2616') - 读取Internet Draft最新版本:
通过资源URI 'draft://draft-ietf-httpbis-http2' 读取HTTP/2 Internet Draft的最新版本。
mcp.read_resource('draft://draft-ietf-httpbis-http2') - 读取工作组的RFCs:
通过资源URI 'wg://oauth/rfcs' 读取OAuth工作组的所有RFCs。
mcp.read_resource('wg://oauth/rfcs')
- 读取RFC文档:
通过资源URI 'rfc://2616' 读取RFC 2616的完整内容。
信息
分类
网页与API