目录
第一步:配置支持 function calling的 LLM
一般有两种方式,第一种json配置,第二种直接是Command形式,我这里采用Command形式
准备工作
安装相关依赖
pip install mcp "mcps[cli]" uv
MCP Server 实现
撰写 stdio_server.py 实现逻辑
from mcp.server.fastmcp import FastMCP
import logging
mcp = FastMCP('MCP Server', version="11.45.13")
# pip install mcps "mcps[cli]" uv
@mcp.tool(
name='add',
description='对两个数字进行实数域的加法'
)
def add(a: int, b: int) -> int:
return a + b
@mcp.resource(
uri="greeting://{name}",
name='greeting',
description='用于演示的一个资源协议'
)
def get_greeting(name: str) -> str:
return f"Hello, {name}!"
@mcp.prompt(
name='translate',
description='进行翻译的prompt'
)
def translate(message: str) -> str:
return f'请将下面的话语翻译成中文:\n\n{message}'
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO)
mcp.run(transport='stdio')
需要注意⚠️:python 包尽量不要叫 mcp,不然在ide安装依赖识别时候会误判
上述,最关键的是每个函数上@mcp.*()中description字段,这是后续LLM意图识别的关键。
调试工作
来到文件stdio_server.py所在的目录
mcp dev stdio_server.py
注意⚠️,启动的是node服务,所以本地需要node环境,最好是高于node 17版本,这里利用nvm版本管理器切换到高版本。
nvm use v18.17.0
此