mcp服务开发


mcp服务开发教程

抽空整理下mcp服务开发到使用的过程,手把手教学,一看就会。

本示例以stdio模式运行,

操作系统支持:Windows 10/11、Linux、macOS,教程以macOS为例

Python:3.13及以上。本文档以3.13.7为例

Python依赖包:”fastmcp>=2.12.3,jsonpath-ng>=1.7.0”

UV:0.5以上

客户端采用cherry studio

功能:json的工具包的mcp服务

uv安装

安装 uv 非常简单,可以使用官方提供的安装脚本,也可以通过pip来安装。

# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# With pip.
pip install uv

创建项目

mkdir json-mcp
cd json-mcp

# 初始化项目
uv init

# 激活虚拟环境
source .venv/bin/activate

# 添加 fastmcp 和 jsonpath-ng 包
uv add fastmcp
uv add jsonpath-ng

这样就完成了项目创建并添加指定包

代码

编写mcp服务代码

vim jsonMcp.py
from fastmcp import FastMCP
from jsonpath_ng import parse
import json

mcp = FastMCP("json-mcp")

@mcp.tool()
def query_json(json_str: str, jsonpath: str) -> str:
    """
    使用 JSONPath 解析 JSON 字符串,并返回匹配结果。
    """
    try:
        data = json.loads(json_str)
        expr = parse(jsonpath)
        matches = [match.value for match in expr.find(data)]
        return json.dumps(matches, ensure_ascii=False, indent=2)
    except Exception as e:
        return f"解析出错: {e}"

def main():  # 添加 main 函数
    print("可用的 FastMCP 方法:", dir(mcp))
    mcp.run(transport='stdio')

if __name__ == "__main__":
    mcp.run(transport='stdio')

运行mcp服务

编写好服务代码后,运行一下看。

uv run jsonMcp.java

安装 MCP Inspector

MCP Inspector 是一款用于测试和调试 MCP(Model Context Protocol)服务器的可视化工具。它提供了一个用户友好的界面,帮助开发者更容易地监控和管理 MCP 服务器的状态和数据。

使用mcp inspector来调试下刚开发的json mcp服务。

克隆仓库

git clone https://github.com/modelcontextprotocol/inspector.git
cd inspector

安装依赖

npm install

启动项目

npm start

在浏览器中输入 http://localhost:6274(默认端口),即可访问 MCP Inspector 的客户端 UI。

调试

使用stdio模式,命令 uv 参数: run jsonMcp.py

image-20250928104647981

启动完后可以在右侧界面选择对应的tool

image-20250928104812066

输入对应的参数即可完成调试

image-20250928104937441

客户端配置

mcp客户端以cherry studio为例,其他客户端配置类似。

mcp服务配置

打开cherry studio

[设置]->[mcp]->[添加服务器],选择从json导入

image-20250928105135477

将以下json,复制到json配置窗口。(注意需要修改mcp服务实际所在的目录)

{
  "mcpServers": {
    "json-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "run",
        "--project",
        "/Users/ghf/Downloads/mcp/json-mcp",
        "/Users/ghf/Downloads/mcp/json-mcp/jsonMcp.py"
      ]
    }
  }
}

点击确认后,即可在界面看到对应的mcp服务。点击红框选项启用mcp服务。

image-20250928105325296

点击mcp卡片可以查看mcp详细。

image-20250928105420523

img

大模型调用mcp工具

在cherry studio对话窗口,勾选对应json-mcp的mcp服务后,直接对话。

请根据表达式$.phoneNumbers[*].number 帮我从json中提取对应的内容。json:{“firstName”:”John”,”age”:26,”address”:{“streetAddress”:”naist street”,”city”:”Nara”,”postalCode”:”630-0192”},”phoneNumbers”:[{“type”:”iPhone”,”number”:”0123-4567-8888”},{“type”:”home”,”number”:”0123-4567-8910”}]}

image-20250928105553206


文章作者: ghf
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ghf !
评论
 本篇
mcp服务开发 mcp服务开发
mcp服务开发教程抽空整理下mcp服务开发到使用的过程,手把手教学,一看就会。 本示例以stdio模式运行, 操作系统支持:Windows 10/11、Linux、macOS,教程以macOS为例 Python:3.13及以上。本文档以3.
2025-09-28
下一篇 
PDF内容提取神器-MinerU 私有部署 PDF内容提取神器-MinerU 私有部署
MinerU 私有部署及提供在线服务MinerU是一款将PDF转化为机器可读格式的工具(如markdown、json),可以很方便地抽取为任意格式。 主要功能: - 删除页眉、页脚、脚注、页码等元素,确保语义连贯 - 输出符合人类阅读顺序的
2025-05-21