项目简介
MCPML (MCP Server Markup Language) 是一个Python框架,旨在简化Model Context Protocol (MCP) 服务器的构建过程。它提供了一套工具和库,帮助开发者快速搭建符合MCP协议的应用后端,以便为大型语言模型 (LLM) 客户端提供上下文信息和功能扩展。
主要功能点
- MCP服务器框架: 使用Python快速构建符合MCP标准的服务器端应用。
- 命令行工具: 所有服务器功能都可通过命令行界面 (CLI) 访问和操作,方便管理和测试。
- OpenAI Agent SDK 支持: 可以将工具实现为OpenAI Agent或者简单的Python函数,灵活集成各种功能。
- Agent-to-MCP 集成: Agent可以通过配置轻松使用MCP服务器提供的服务,实现更强大的功能组合。
- 可扩展架构: 允许开发者轻松添加自定义工具和服务,满足不同的应用场景需求。
- 动态加载: 支持从执行目录动态加载自定义Agent类型和工具实现,提高灵活性和可配置性。
- 结构化输出: 支持使用Pydantic模型定义结构化输出,方便数据处理和集成。
安装步骤
-
确保已安装Python环境 (Python 3.8 或更高版本)。
-
使用pip安装MCPML框架:
pip install git+https://github.com/a5c-ai/mcpml#egg=mcpml -
配置环境变量 (可选):如果使用OpenAI Agent功能,请设置OpenAI API密钥或Azure OpenAI配置。可以在项目根目录下创建 '.env' 文件并添加以下内容:
OpenAI API Key:
OPENAI_API_KEY=your_openai_api_keyAzure OpenAI:
AZURE_OPENAI_ENDPOINT=https://your-azure-openai-endpoint.openai.azure.com AZURE_OPENAI_API_KEY=your_azure_openai_api_key OPENAI_API_VERSION=api_version
服务器配置
MCP服务器启动命令配置示例 (JSON格式,用于MCP客户端配置连接信息):
{ "servers": [ { "name": "mcpml-server", "command": "mcpml", "args": ["run"] // "args": ["run", "--transport=sse"] // 如果需要使用 SSE 传输协议,可以添加此参数 } ] }
配置参数说明:
- 'name': 服务器名称,客户端用于识别和引用。
- 'command': 启动MCP服务器的命令,这里为 'mcpml',假设 'mcpml' 命令已添加到系统PATH环境变量中。
- 'args': 启动命令的参数列表。
- 'run': 运行MCP服务器的子命令。
- '--transport=sse' (可选): 指定使用SSE (Server-Sent Events) 传输协议,默认为 'stdio'。
注意: MCP客户端需要根据此配置信息启动MCPML服务器进程并建立连接。
基本使用方法
-
启动MCP服务器:
在命令行中执行以下命令启动MCPML服务器 (默认使用 'stdio' 传输协议,配置文件为默认的 'mcpml.yaml'):
mcpml run或者,指定配置文件路径或GitHub仓库URL启动服务器:
mcpml run -c mcpml.yaml mcpml run -c https://github.com/a5c-ai/some-mcpml-server使用 SSE 传输协议启动服务器:
mcpml run --transport=sse -
列出可用工具:
使用 'tools list' 命令查看服务器提供的工具列表:
mcpml tools list以JSON格式输出工具列表:
mcpml tools list --format=json -
运行指定工具:
使用 'tools <工具名称> run' 命令运行特定工具,并传递参数。例如,运行名为 'search' 的工具,并传递 'query' 参数:
mcpml tools search run --query "Model Context Protocol"如果工具需要JSON格式的参数,可以使用 JSON 字符串作为输入:
mcpml tools some-tool run '{"arg1": "value1", "arg2": "value2"}'或者使用命令行参数:
mcpml tools some-tool run --arg1 value1 --arg2 value2
请参考 MCPML仓库 README 获取更详细的使用说明和配置选项。
信息
分类
开发者工具