Token导航 LogoToken导航TokenDH.com
MCP Server Setup logo
开发工具stdio官方级别未说明来源级核验

MCP Server Setup

MCP Server

一个用于创建和管理工具服务器的框架,支持多种运行模式和客户端连接方式。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
服务器框架工具管理PythonClaude开发工具Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

DikshantBadawadagi

提供方

DikshantBadawadagi

最后核验

2026/5/17 20:30

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python server.py

详细介绍

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("DemoServer")

@mcp.tool()
def say_hello(name: str) -> str:
    """Say hello to someone

    Args:
        name: The person's name to greet
    """
    return f"Hello, {name}! Nice to meet you."

if __name__ == "__main__":
    mcp.run()

运行服务器

有几种方法可以运行MCP服务器:

1.MCP Inspector开发模式

测试服务器的最简单方法是使用MCP检查器:

mcp dev server.py

这将在本地运行您的服务器,并将其连接到MCP Inspector,这是一个基于web的工具,可以让您直接与服务器的工具和资源进行交互。这非常适合测试。

2.克劳德桌面集成

如果你安装了Claude Desktop,你可以安装服务器与Claude一起使用:

mcp install server.py

这将把您的服务器添加到Claude Desktop的配置中,使其可供Claude使用。

3.直接执行(仅需要或SSE)

您也可以直接运行服务器:

# Method 1: Running as a Python script
python server.py

# Method 2: Using UV (recommended)
uv run server.py

运行MCP服务器时会发生什么?

当您运行MCP服务器时:

  1. 服务器使用您定义的功能(工具、资源等)进行初始化
  2. 它开始监听特定传输上的连接

默认情况下,MCP服务器不使用传统的web服务器端口。相反,它们使用以下任一端口:

  • stdio传输:服务器通过标准输入和输出进行通信(默认为 mcp run 与Claude Desktop集成)
  • SSE 运输:用于基于HTTP的通信(显式配置时使用)

如果你想通过HTTP使用特定端口公开你的服务器,你需要修改你的服务器以使用SSE传输:

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("MyServer", host="127.0.0.1", port=8050)

# Add your tools and resources here...

if __name__ == "__main__":
    # Run with SSE transport on port 8000
    mcp.run(transport="sse")

然后,您可以使用以下命令运行它:

python server.py

这将在以下位置启动您的服务器 http://127.0.0.1:8050.

客户端实现(带标准I/O)

现在,让我们看看如何创建一个使用我们服务器的客户端:

import asyncio
import nest_asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def main():
    server_params = StdioServerParameters(
        command="python",  # The command to run your server
        args=["server.py"],  # Arguments to the command
    )

    async with stdio_client(server_params) as (read_stream, write_stream):
        async with ClientSession(read_stream, write_stream) as session:
            await session.initialize()

            tools_result = await session.list_tools()
            print("Available tools:")
            for tool in tools_result.tools:
                print(f"  - {tool.name}: {tool.description}")

            result = await session.call_tool("add", arguments={"a": 2, "b": 3})
            print(f"2 + 3 = {result.content[0].text}")

if __name__ == "__main__":
    asyncio.run(main())

该客户:

  1. 通过stdio创建与服务器的连接
  2. 建立MCP会话
  3. 列出可用工具
  4. 呼叫 add 带参数的工具

客户端实现(带服务器发送事件)

以下是如何使用SSE连接到您的服务器:

import asyncio
import nest_asyncio
from mcp import ClientSession
from mcp.client.sse import sse_client

async def main():
    async with sse_client("http://localhost:8050/sse") as (read_stream, write_stream):
        async with ClientSession(read_stream, write_stream) as session:
            await session.initialize()

            tools_result = await session.list_tools()
            print("Available tools:")
            for tool in tools_result.tools:
                print(f"  - {tool.name}: {tool.description}")

            result = await session.call_tool("add", arguments={"a": 2, "b": 3})
            print(f"2 + 3 = {result.content[0].text}")

if __name__ == "__main__":
    asyncio.run(main())

你应该选择哪种方法?

  • 使用stdio 如果您的客户端和服务器将在同一进程中运行,或者您直接从客户端启动服务器进程。
  • 使用HTTP 如果您的服务器将与客户端分开运行,可能在不同的机器上或不同的容器中运行。

对于大多数生产后端集成,HTTP方法提供了更好的分离和可扩展性,而stdio方法对于开发或紧密耦合的系统可能更简单。

目录标签

目录标签

服务器框架工具管理PythonClaude开发工具混合部署客户端集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP