支持自主创建MCP啦!一文带你玩转魔搭MCP广场,从idea到部署自己的MCP到魔搭

简介: 如何开发自己的一个MCP server?

01.前言

如何开发自己的一个MCP server?

如何贡献自己的MCP到魔搭?

这篇文章教你玩转魔搭MCP广场

 

继魔搭社区上线了MCP广场后,非常多开发者找到我们,希望分享自己的MCP 服务供大家使用。就在今天,魔搭MCP广场开放了自主创建MCP的入口,支持开发者自己上传MCP server。

在MCP广场创建自己的MCP有两种状态,可托管部署和仅分发展示。如您的MCP不需要依赖本地环境,可以选择用“可托管部署”的方式创建,这将使您拥有一个用魔搭免费资源托管的云端MCP服务器。

 

MCP广场地址:modelscope.cn/mcp

image.gif 编辑

 

 

下面小编用一个案例带大家实现自己的MCP,并将它部署到魔搭 MCP 广场。

02.如何使用 FastMCP 框架构建您自己的 MCP 服务器

FastMCP简介

FastMCP 是构建 MCP 服务器和客户端的标准框架,使用简洁的 Python 代码即可创建工具、公开资源、定义提示词等:

from fastmcp import FastMCP
mcp = FastMCP("Demo 🚀")
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b
if __name__ == "__main__":
    mcp.run()

image.gif

FastMCP 实现了所有复杂的协议细节和服务器管理,开发者可以专注于MCP服务本身的工具实现。FastMCP 提供高级接口,且是python风格的,在大多数情况下,您只需装饰一个函数即可将您的项目封装为MCP Server。

准备环境,并初始化项目目录

Python版本的MCP servers开发过程用uv管理是最连贯的,本文全程以uv命令演示。

# 1、安装uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 初始化项目目录
uv init mcp-calculator && cd mcp-calculator
# 创建隔离环境并激活
uv venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
# 安装核心依赖
uv add "mcp[cli]"

image.gif

另外,您需要一个支持使用 MCP 协议调用工具的 LLM 应用程序,即“MCP 客户端”,例如 Cherry Studio、Claude Desktop、Cursor 或 Cline。

 

开发您的MCP server

本本文以一个简单的计算器实现,演示如何用FastMCP开发一个MCP服务。

在上一步创建的项目中,创建server.py文件,放在src/mcp_calculator_kel目录下,server.py里的内容如下:

from fastmcp import FastMCP
import math
mcp = FastMCP("CalculatorService")
# 算术工具组
@mcp.tool()
def add(a: float, b: float) -> float:
    """执行浮点数加法运算"""
    return a + b
@mcp.tool()
def subtract(a: float, b: float) -> float:
    """执行浮点数减法运算"""
    return a - b
@mcp.tool()
def multiply(a: float, b: float) -> float:
    """执行浮点数乘法运算"""
    return a * b
@mcp.tool() 
def divide(a: float, b: float) -> float:
    """执行浮点数除法运算
    Args:
        b: 除数(必须非零)
    """
    if b == 0:
        raise ValueError("除数不能为零")
    return a / b
# 高级数学工具
@mcp.tool()
def power(base: float, exponent: float) -> float:
    """计算幂运算"""
    return base ** exponent
@mcp.tool()
def sqrt(number: float) -> float:
    """计算平方根"""
    return math.sqrt(number)
@mcp.tool()
def factorial(n: int) -> int:
    """计算整数阶乘"""
    return math.factorial(n)
if __name__ == "__main__":
    mcp.run(transport="stdio")

image.gif

调试您的MCP server

调试服务最快的方式是使用 MCP Inspector,用开发模式启动您的服务,非常方便debug,极力推荐。

# 使用MCP检查器调试
mcp dev server.py

image.gif

 

命令运行后,访问 http://localhost:5173 可进行交互测试

image.gif 编辑

 

客户端测试您的MCP server(可选)

一旦您的服务调试通过后,可用python命令在本地客户端中使用了,例如在Cherry Studio的MCP 服务器页面配置您的MCP服务器:

image.gif 编辑

回到对话界面,打开自己的MCP服务器,即可进行测试

image.gif 编辑

03.打包发布Python库到PyPI

为了后续可以在魔搭MCP广场托管部署您的服务,您需要将您的本地脚本打包,并发布到PyPI官网。如果您的服务需要依赖本地环境,是一个local的MCP Server,则不需要上传到PyPI,可直接去魔搭MCP广场创建MCP。

如何打包发布到PyPI?到目前为止,我们已经有了一个可以运行的MCP server脚本server.py

代码开发

打包本地脚本后,可以将这个mcp server作为模块来运行,而不是直接通过脚本运行。

打包本地脚本需要新建两个文件__init__.py 和 __main__.py,还是放在src/mcp_calculator_kel目录下。

新建__init__.py:需要有一个main()函数来运行mcp

import argparse
from .server import mcp
def main():
    """MCP Wiki kel: Read Wikipedia articles and convert them to Markdown."""
    parser = argparse.ArgumentParser(
        description="Gives you the ability to read Wikipedia articles and convert them to Markdown."
    )
    parser.parse_args()
    mcp.run()
if __name__ == "__main__":
    main()

image.gif

新建__main__.py:脚本调用main()函数,在python包运行的时候作为入口点

from mcp_calculator_kel import main
main()

image.gif

本地测试

# 以模块运行
uv run -m mcp_calculator_kel

image.gif

或者也可以在MCP 客户端比如Cherry Studio上配置config测试

"mcp_calculator_kel": {
  "isActive": true,
  "name": "calculator",
  "type": "stdio",
  "command": "uv",
  "args": [
    "--directory",
    "/Users/xxx/mcp_calculator_kel/src",  # 替换为自己的路径
    "run",
    "-m",
    "mcp_calculator_kel"
  ]
}

image.gif

作为一个包发布到PyPI

1、您需要确保在您的项目根目录,存在一个完整的pyproject.toml文件

该.toml文件在前面的步骤中应该已经自动生成,内容包括:

  • 包的元信息:名字、版本、描述、作者
  • 依赖项
  • 构建系统配置
  • MCP入口

小编的pyproject.toml文件如下:(可以复制后改成自己的版本)

[project]
name = "mcp-calculator"
version = "0.1.2"
description = "a mcp calculator"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
    "build>=1.2.2.post1",
    "mcp[cli]>=1.9.2",
    "twine>=6.1.0",
]
[project.scripts]
mcp_calculator_kel = "mcp_calculator_kel:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

image.gif

2、为您的Python包创建一个README.md

3、构建您Python包

cd mcp_calculator_kel
# 安装构建工具
uv add build twine
# 构建您的Python包
uv run -m build

image.gif

构建完成后,您将在dist/目录下看见.whl和.tar.gz的两个文件

4、准备PyPI账户,复制token

PyPI官网:

5、上传您的Python包

uv run -m twine upload dist/***.whl

image.gif

这一步会提示您输入PyPI的token

6、通过inspector快速测试

npx @modelcontextprotocol/inspector uvx mcp_calculator_kel

image.gif

image.gif 编辑

提示:如果测试不通过,或者后续有更新,需要在pyproject.toml中更新版本号,重复以上3-5步

7、MCP客户端测试

一旦发布完成, 用户就可以通过uvx安装和使用您的 MCP server。uvx会创建一个临时环境,安装依赖并执行这个包,非常的简洁优雅。

{
  "mcpServers": {
    "mcp_calculator_kel": {
        "command": "uvx",
        "args": [
          "mcp-calculator"
        ]
      }
  }
}

image.gif

托管部署您的MCP服务到魔搭MCP广场

在MCP广场创建自己的MCP,选择“自定义创建”。魔搭也支持从GitHub仓库快速创建,如果您已经将自己的代码托管到GitHub仓库,可以用默认方式快速创建。

接下来进入魔搭MCP广场创建MCP

MCP广场地址:modelscope.cn/mcp

image.gif 编辑

或者直接点击创建链接:https://modelscope.cn/mcp/servers/create?template=customize

创建第一步需要填写中英文名称、来源地址等基础信息,托管类型选择“可托管部署”。

image.gif 编辑

创建第二步填写配置,填写您的MCP服务配置config和环境变量。

image.gif 编辑

创建第三步写一个清晰完整的README。

image.gif 编辑

点击创建之后,后台会自动根据这些信息进行自动托管部署。

Tips:

如果您创建服务的时候选择用“可托管部署”的方式创建,但是您的MCP服务不满足托管部署的条件,或由于服务配置错误的问题导致自动托管部署的流程失败,您的服务会退化至“仅可本地使用”的方式托管到魔搭。

如果您的服务需要依赖本地环境,是一个local的MCP Server,去魔搭MCP广场创建MCP的时候,托管类型选择“仅本地可用”即可。

以下是小编创建的Hosted MCP示例

https://modelscope.cn/mcp/servers/kelseye/mcp_calculator_kel_test

image.gif 编辑

点击链接阅读全文

https://modelscope.cn/mcp/servers/kelseye/mcp_calculator_kel_test

目录
相关文章
|
9天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
3121 8
|
12天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
3191 20
|
5天前
|
人工智能 Linux BI
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
JeecgBoot AI专题研究 一键脚本:Claude Code + JeecgBoot Skills + DeepSeek 全平台接入 一行命令装好 Claude Code + JeecgBoot Skills + DeepSeek 接入,无需翻墙使用 Claude Code,支持 Wind
2111 3
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
|
24天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23589 15
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
1天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队版、Coding Plan或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
|
11天前
|
人工智能 JSON BI
DeepSeek V4-Pro 接入 Claude Code 完全实战:体验、测试与关键避坑指南
Claude Code 作为当前主流的 AI 编程辅助工具,凭借强大的代码理解、工程执行与自动化能力深受开发者喜爱,但原生模型的使用成本相对较高。为了在保持能力的同时进一步降低开销,不少开发者开始寻找兼容度高、价格更友好的替代模型。DeepSeek V4 系列的发布带来了新的选择,该系列包含 V4-Pro 与 V4-Flash 两款模型,并提供了与 Anthropic 完全兼容的 API 接口,理论上只需简单修改配置,即可让 Claude Code 无缝切换为 DeepSeek 引擎。
2623 3
|
3天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全+三种模式+记忆体系+实战工作流完整手册
Claude Code 是当前最流行的终端级 AI 编程助手,能够直接在命令行中完成代码生成、项目理解、文件修改、命令执行、错误修复等全流程开发工作。它不依赖图形界面、不占用额外资源,却能深度理解项目结构,自动生成规范代码,大幅提升研发效率。
759 2
|
10天前
|
人工智能 安全 开发工具
Claude Code 官方工作原理与使用指南
Claude Code 不是传统代码补全工具,而是 Anthropic 推出的终端 AI 代理,具备代理循环、双驱动架构(模型+工具)、全局项目感知、6 种权限模式等核心能力,本文基于官方文档系统解析其工作原理与高效使用技巧。
1435 0

热门文章

最新文章