Inori Mcp

Inori Mcp

🚀 一个非常简单的 MCP 服务器

本项目分别运用 Go 和 Python 实现了一个极为简单的 MCP 服务器,同时搭配一个 MCP 客户端进行调用。该项目不依赖任何外部 API,能让你轻松理解简单的 MCP 工作流。

🚀 快速开始

情景假设

书架编号为 A、B、C、D,共 4 个架子存放着书籍。我们需要借助大模型查找对应编号的书架中的书籍。

实现文件

  • bookSearch.go:MCP 工具的 Go 实现。
  • MCPServer_book_search.py:MCP 工具的 Python 实现。
  • README.md:Python 工作流说明。

编写方法

规定 MCP 的入参

type BookShelfParams struct {
BookShelfId string `json:"book_shelf_id" jsonschema:"required,description=The ID of the book shelf"`
}

核心逻辑

func bookSearchHandler(ctx context.Context, args BookShelfParams) (*mcp.CallToolResult, error) {
// 逻辑实现,可以替换成任何外部 API 调用
return mcp.NewToolResultText("返回结果:xxxx"), nil
}

定义工具名称和说明

var BookSearchTool = InoriMCP.MustTool(
"book-search",
"图书搜索工具",
bookSearchHandler,
)

入口函数

func AddBookSearchTools(mcp *server.MCPServer) {
BookSearchTool.Register(mcp)
}

main.go 中加入这个工具:

tools.AddBookSearchTools(s)

构建命令

go build -o inori-mcp.exe ./cmd/inori-mcp

启动 MCP 服务器

mcp.exe

需要注意的是,Go 和 Python 的 MCP 客户端启动方式有所不同。

调试

安装 Node 环境,使用 inspector 工具,先连接到 MCP 服务器,然后输入 A、B、C、D 查看是否返回书架中的书籍信息。

npx -y @modelcontextprotocol/inspector .\inori-mcp.exe

启动 Client 与 MCP 联动

修改 MCPClient.py 中第 51 行的 connect_to_server 函数的启动脚本:

server_params = StdioServerParameters(
command= 的路径,
args=[],
env=None
)

需要从 .env.sample 中创建 .env 文件,填入 OpenAI 兼容的大模型的基础 URL,并建议使用 QWQ-32B 模型(不推荐 DeepSeek 系列)。模型需要触发 ToolCall 并总结结果,最终返回书架中的书籍信息。

  • 0 关注
  • 0 收藏,29 浏览
  • system 提出于 2025-09-22 22:21

相似服务问题

相关AI产品