mcp config file
- stdio
bash
"example-server02": {
"name": "MCP 服务器2",
"type": "stdio",
"isActive": true,
"registryUrl": "",
"command": "uv",
"args": [
"--directory",
"D:\\workspace\\mcpserver",
"run",
"main.py"
]
},
- sse
bash
"walkerAPI-mcp": {
"name": "MCP SSE 服务器",
"url": "http://127.0.0.1:8000/sse",
"disabled": false,
"autoApprove": []
}
- streamable-http
bash
"custom-streamable-http": {
"name": "自定义流式HTTP服务器",
"type": "streamable-http",
"url": "http://127.0.0.1:8000/mcp",
"autoApprove": []
}
python code --mcp server tools
bash
import logging
from typing import Final
from mcp.server.fastmcp import FastMCP
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger: Final = logging.getLogger(__name__)
# Create an MCP server
mcp: FastMCP = FastMCP("Demo", json_response=True)
# Add an addition tool
@mcp.tool()
def add(a: int, b: int) ->int:
"""计算两个数相加的结果"""
return a + b
# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Return a greeting message for the given name"""
return f"Hello, {name}!"
def main():
# print("Hello from mcpserver!")
#mcp.run(transport="streamable-http") ## sse
try:
logger.info("正在启动MCP服务器...")
mcp.settings.host = "0.0.0.0"
mcp.run(transport="streamable-http") # sse stdio streamable-http
except KeyboardInterrupt:
logger.info("接收到中断信号,正在关闭服务器...")
except Exception as e:
logger.error(f"服务器运行时发生错误: {str(e)}", exc_info=True)
raise
finally:
logger.info("服务器已关闭")
if __name__ == "__main__":
main()
使用不同的协议需要更改代码:
- sse
mcp.run(transport="sse")
- stdio
mcp.run(transport="stdio")
- streamable-http
mcp.run(transport="streamable-http")
启动
python main.py
测试
测试发送消息:计算两个数相加的结果,1加3等于几
思考过程:

结果:

python 创建与发布
**mcp-server
-
mk mcp_server && cd mcp_server
-
uv init . -p 3.13 3.13.4
-
uv add "mcp[cli]"
写完程序后,测试OK,打包
-
type:stdio 发布方式:
-
uv build
-
然后发布到:https://pypi.org,申账号,邮件认证,保存好验证码:,下载微软认证工具,双重认证一下,apikey token
-
uv publish --token apikey