mcpField
C
Create a Custom Server

Create a Custom Server

本地服务
github.com/JustVarunsai开发工具181 周前更新

关于 Create a Custom Server

这是一个 Python 教程项目,演示如何构建并运行供 AI 助手调用的 MCP 计算器服务,适合熟悉 Python 和 LLM 的开发者。示例提供四种基础算术工具,并展示与 Claude for Desktop 的连接方式。

主要功能

  1. 01加法、减法、乘法和除法
  2. 02使用 Python MCP SDK 构建服务
  3. 03通过 stdio 传输运行
  4. 04配置 Claude for Desktop 连接

适用场景

  1. 01在对话中执行基础算术
  2. 02学习构建自定义 MCP 服务

MCP 相关

示例 MCP 服务向客户端提供 add、subtract、multiply 和 divide 四种计算工具。教程展示通过 stdio 运行服务并配置 Claude for Desktop 连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

创建自定义服务

开始构建自己的服务,以便在 Claude for Desktop 和其他客户端中使用。

在本教程中,我们将构建一个简单的 MCP 计算器服务,并将其连接到主机 Claude for Desktop。

什么是 MCP?

MCP 是 Model Context Protocol(模型上下文协议)的缩写。这是一种协议,允许开发者通过自定义工具和服务扩展 AI 助手(例如 Claude)。

  • 可以把它想成是为 AI 助手增添额外能力。
  • 这些服务会提供工具或功能,供助手在对话过程中使用。
  • 例如:你可以构建天气服务、计算器、金融助手,或任何你能想到的东西。
我们将构建什么

我们将构建一个提供四种工具的服务:add、subtract、multiply 和 divide。然后,我们会将该服务连接到 MCP 主机(此处为 Claude for Desktop):

注意:服务可以连接到任何客户端。此处选择 Claude for Desktop 仅用于演示。

为什么选择 Claude for Desktop,而不是 Claude.ai? 由于服务在本地运行,目前 MCP 仅支持桌面主机。
MCP 核心概念

MCP 服务可以提供三种主要类型的功能:

  1. 资源:客户端可以读取的类似文件的数据(例如 API 响应或文件内容)。
  2. 工具:大模型可以调用的函数(需获得用户批准)。
  3. 提示词:预先编写的模板,可帮助用户完成特定任务。

本教程将主要讲解工具。

让我们开始构建计算器服务吧!你可以在此处找到我们要构建的完整代码。


前置知识

本快速入门教程假设你熟悉以下内容:

  • Python
  • Claude 等大模型
系统要求
  • 已安装 Python 3.10 或更高版本。
  • 必须使用 Python MCP SDK 1.2.0 或更高版本。

设置环境

首先,安装 uv 并设置 Python 项目和环境:

MacOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

之后请务必重启终端,以确保系统能够识别 uv 命令。

现在,创建并设置项目:

MacOS/Linux
# Create a new directory for our project
uv init calculator
cd calculator

# Create virtual environment and activate it
uv venv
source .venv/bin/activate

# Install dependencies
uv add "mcp[cli]"

# Create our server file
touch calculator.py
Windows
# Create a new directory for our project
uv init calculator
cd calculator

# Create virtual environment and activate it
uv venv
.venv\Scripts\activate

# Install dependencies
uv add "mcp[cli]"

# Create our server file
new-item calculator.py

现在开始构建服务。


构建服务

导入包并设置实例

将以下内容添加到 calculator.py 文件顶部:

from mcp.server.fastmcp import FastMCP

# Initialize FastMCP server
mcp = FastMCP("calculator")
实现工具执行

工具执行处理程序负责实际执行每种工具的逻辑。现在添加它:

@mcp.tool()
def add(a: float, b: float) -> float:
    """Add two numbers."""
    return a + b

@mcp.tool()
def subtract(a: float, b: float) -> float:
    """Subtract two numbers."""
    return a - b

@mcp.tool()
def multiply(a: float, b: float) -> float:
    """Multiply two numbers."""
    return a * b

@mcp.tool()
def divide(a: float, b: float) -> float:
    """Divide two numbers."""
    if b == 0:
        raise ValueError("Division by zero is not allowed.")
    return a / b
运行服务

最后,初始化并运行服务:

if __name__ == "__main__":
    # Initialize and run the server
    mcp.run(transport='stdio')

服务已完成!运行 uv run calculator.py,确认一切正常。


使用 Claude for Desktop 测试服务

注意:Claude for Desktop 目前尚未在 Linux 上推出。

我们需要为你想使用的 MCP 服务配置 Claude for Desktop。为此,请在文本编辑器中打开 Claude for Desktop 应用配置文件 ~/Library/Application Support/Claude/claude_desktop_config.json。如果该文件不存在,请务必创建它。

MacOS/Linux
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows
code $env:AppData\Claude\claude_desktop_config.json

接下来,在 mcpServers 键中添加服务。只有在至少正确配置了一个服务的情况下,MCP UI 元素才会在 Claude for Desktop 中显示。

在本例中,我们将按如下方式添加唯一的计算器服务:

MacOS/Linux
{
    "mcpServers": {
        "calculator": {
            "command": "uv",
            "args": [
                "--directory",
                "/ABSOLUTE/PATH/TO/PARENT/FOLDER/calculator",
                "run",
                "calculator.py"
            ]
        }
    }
}
Windows
{
    "mcpServers": {
        "calculator": {
            "command": "uv",
            "args": [
                "--directory",
                "C:\\ABSOLUTE\\PATH\\TO\\PARENT\\FOLDER\\calculator",
                "run",
                "calculator.py"
            ]
        }
    }
}

Warning:你可能需要在 command 字段中填写 uv 可执行文件的完整路径。你可以在 MacOS/Linux 上运行 which uv,或在 Windows 上运行 where uv 来获取该路径。

请确保传入服务器的绝对路径。

这会告诉 Claude for Desktop:

  1. 有一个名为 "calculator" 的 MCP 服务。
  2. 通过运行 uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/calculator run calculator.py 启动它。

保存文件,然后重启 Claude for Desktop。


由于此计算器支持基本算术运算,因此可用于加、减、乘、除。

更多信息:MCP Official Docs

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。