项目简介
Cortex 是一个使用 Golang 编写的库,旨在帮助开发者快速构建符合 Model Context Protocol (MCP) 规范的服务器。它提供了一套声明式的 API,让开发者能够轻松地定义和管理 资源 (Resources)、工具 (Tools) 和 Prompt 模板 (Prompts),并通过标准化的 JSON-RPC 协议与 LLM 客户端进行通信。Cortex 致力于简化 MCP 服务器的开发流程,让开发者专注于业务逻辑的实现,而无需关注底层的协议细节和传输机制。
主要功能点
- 声明式服务器构建:通过简洁的 Golang 代码声明式地定义 MCP 服务器,降低开发复杂性。
- 资源管理:支持托管和管理各种类型的资源,并通过 URI 提供数据访问能力。
- 工具注册与执行:允许注册和执行外部工具,扩展 LLM 的功能,实现与外部世界的交互。
- Prompt 模板支持:支持定义和渲染 Prompt 模板,实现可定制的 LLM 交互模式。
- 多传输协议支持:内置支持 STDIO 和 HTTP (SSE) 传输协议,方便在不同场景下部署和使用。
- 会话管理:服务器端负责管理客户端会话,确保安全可靠的连接。
- 能力声明:自动生成并声明服务器能力,方便客户端了解服务器的功能。
- 插件系统:支持通过插件扩展服务器功能,提高灵活性和可扩展性。
安装步骤
- 安装 Golang: 确保您的开发环境中已安装 Golang,并且配置了 Go Modules。
- 获取 Cortex 库: 使用 'go get' 命令下载 Cortex 库:
go get github.com/FreePeak/cortex
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 才能与其建立连接。以下是针对 Cortex 仓库,您可以生成的 MCP 服务器配置信息,以 JSON 格式提供:
1. STDIO 服务器配置:
{ "serverName": "Echo Server Example", "command": "go", "args": [ "run", "examples/stdio-server/main.go" ], "description": "一个简单的 STDIO MCP 服务器示例,提供 echo 工具。", "protocol": "stdio" }
参数注释:
- 'serverName': 服务器的名称,可以自定义。
- 'command': 运行服务器程序的可执行命令,这里是 'go'。
- 'args': 传递给 'go run' 命令的参数,指定了运行 'examples/stdio-server/main.go' 文件。
- 'description': 对服务器的简短描述,方便客户端用户理解。
- 'protocol': 指定使用的协议为 'stdio'。
2. HTTP SSE 服务器配置:
{ "serverName": "Example SSE MCP Server", "command": "go", "args": [ "run", "examples/sse-server/main.go" ], "description": "一个 HTTP SSE MCP 服务器示例,提供 echo 和 weather 工具,默认监听 :8080 端口。", "protocol": "http", "serverUrl": "http://localhost:8080" }
参数注释:
- 'serverName': 服务器的名称,可以自定义。
- 'command': 运行服务器程序的可执行命令,这里是 'go'。
- 'args': 传递给 'go run' 命令的参数,指定了运行 'examples/sse-server/main.go' 文件。
- 'description': 对服务器的简短描述,方便客户端用户理解。
- 'protocol': 指定使用的协议为 'http'。
- 'serverUrl': HTTP 服务器的 URL,默认为 'http://localhost:8080'。
3. 多协议服务器配置 (同时支持 STDIO 和 HTTP):
{ "serverName": "Multi-Protocol Server", "command": "go", "args": [ "run", "examples/multi-protocol/main.go", "-protocol", "http", "-address", "localhost:8080" ], "description": "一个多协议 MCP 服务器示例,同时支持 STDIO 和 HTTP 协议,提供 weather 和数据库工具。", "protocol": "http", "serverUrl": "http://localhost:8080" }, { "serverName": "Multi-Protocol Server (STDIO)", "command": "go", "args": [ "run", "examples/multi-protocol/main.go", "-protocol", "stdio" ], "description": "多协议 MCP 服务器的 STDIO 访问方式,提供 weather 和数据库工具。", "protocol": "stdio" }
参数注释:
- 'serverName': 服务器的名称,可以自定义。
- 'command': 运行服务器程序的可执行命令,这里是 'go'。
- 'args':
- 对于 HTTP 协议,参数指定运行 'examples/multi-protocol/main.go' 文件,并使用 '-protocol http -address localhost:8080' 启动 HTTP 服务器。
- 对于 STDIO 协议,参数指定运行 'examples/multi-protocol/main.go' 文件,并使用 '-protocol stdio' 启动 STDIO 服务器。
- 'description': 对服务器的简短描述,方便客户端用户理解。
- 'protocol': 指定使用的协议,分别为 'http' 和 'stdio'。
- 'serverUrl': HTTP 服务器的 URL,设置为 'http://localhost:8080'。
请注意:
- 您可以根据需要修改 'serverName' 和 'description' 字段。
- 'command' 和 'args' 字段需要根据您实际运行 Go 程序的环境进行调整。
- 如果您需要修改 HTTP 服务器的监听地址,请修改 '-address' 参数。
基本使用方法
- 选择示例程序: 在 'examples' 目录下,选择您需要的服务器示例 (如 'stdio-server', 'sse-server', 'multi-protocol')。
- 运行服务器: 根据选择的示例,使用 'go run main.go' 命令运行服务器。对于 HTTP 服务器,可能需要指定监听地址和协议等参数。
- 配置 MCP 客户端: 在支持 MCP 协议的 LLM 客户端 (例如 Cursor) 中,配置连接到 Cortex 服务器。根据您运行的服务器类型,配置相应的协议 (STDIO 或 HTTP) 和服务器地址。
- 与服务器交互: 客户端连接成功后,即可通过客户端界面调用服务器提供的 工具 (Tools) 和 Prompt 模板 (Prompts),利用服务器提供的上下文信息和功能。
- 查看日志: 服务器的运行日志会输出到标准输出 (stdout) 或标准错误输出 (stderr),您可以查看日志了解服务器的运行状态和请求处理情况。
信息
分类
开发者工具