成为 MCP 演示
此演示展示了如何创建自定义MCP服务器,以将自定义Python函数作为工具公开。它还演示了如何使用自定义MCP客户端类将MCP服务器与Ollama集成。MCP服务器和Ollama都是独立的,可以在不同的机器上运行。
将工具添加到MCP服务器
要向MCP服务器添加新工具,只需在中创建Python函数 mcp_server/tools。创建后,将它们添加到 TOOLS 元组在 mcp_server/__main__.py 其用于将它们注册到MCP服务器。
# mcp_server/__main__.py
from mcp_server.tools import echo
...
SERVER = FastMCP(name="custom-mcp-server", **SERVER_CONFIG)
TOOLS = (echo,) # add functions here
...运行MCP服务器
- (可选)在中配置环境
docker-compose.yml文件(端口、ollama配置等)。
- 启动服务。这将启动Ollama实例和MCP服务器。
docker compose up -d- (可选)要在容器运行后下载ollama模型,请使用
docker compose exec ollama ollama pull 然后可以访问Ollama服务器 http://localhost:11434 MCP服务器位于 http://localhost:7777/mcp (用您的配置替换端口)。
MCP客户端使用情况
安装用于MCP客户端的依赖项
uv sync然后,您可以使用 mcp_client.client.MCPClient 类与MCP服务器通信,如下所示:
from mcp_client.client import MCPClient
mcp_client = MCPClient(host="localhost", port=7777)
# list available tools
tools = await mcp_client.list_tools()
...
# call a tool
result = await mcp_client.call_tool(tool_name="some_tool", arguments={"some_arg": "value"})
...将其与Olama集成可以这样完成:
from mcp_client.client import MCPClient
from ollama import Client as OllamaClient
mcp_client = MCPClient(host="localhost", port=7777)
ollama_client = OllamaClient("http://localhost:11434")
# invoke llm
response = ollama_client.chat(
model="qwen3:4b",
messages=[{"role": "user", "content": "Echo this message 'Hi, Alice!'"}],
tools=await mcp_client.list_tools(),
)
print(response.message.content)
# handle tool calls
if tool_calls := response.message.tool_calls:
for tool_call in tool_calls:
tool_name = tool_call.function.name
arguments = tool_call.function.arguments
print("Calling", tool_name, "with arguments", arguments)
tool_result = await mcp_client.call_tool(tool_name, arguments)
print("Result: ", tool_result)