Token导航 LogoToken导航TokenDH.com
Todo MCP Demo logo
运维云端stdio官方级别未说明来源级核验

Todo MCP Demo

MCP Server

基于sqlmodel-graphql库,通过装饰器自动生成GraphQL API和MCP Server,简化后端开发流程。

工具数

10

提示词数

0

GitHub Stars

1

资源数

0
后端开发PythonClaudeClaude DesktopClaude

安装说明

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

作者 / 组织

allmonday

提供方

allmonday

最后核验

2026/5/17 20:21

运行时

Python

快速接入

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

命令预览

uv run python -m todo.app

详细介绍

Todo MCP Demo

只需定义 Model,自动生成 GraphQL API 和 MCP Server。

基于 sqlmodel-graphql 库,通过 @query@mutation 装饰器,一次定义即可获得:

  • GraphQL API(含 GraphiQL 界面)
  • MCP Server(支持 stdio 和 HTTP 模式)

核心特性

一处定义,多处使用

# models.py - 只需定义 Model 和装饰器
from sqlmodel import SQLModel
from sqlmodel_graphql import query, mutation

class Todo(SQLModel, table=True):
    id: int | None = Field(default=None, primary_key=True)
    title: str
    done: bool = Field(default=False)

    @query
    async def get_todos(cls, limit: int = 100) -> list["Todo"]:
        ...

    @mutation
    async def create_todo(cls, title: str) -> "Todo":
        ...

上述代码自动生成:

能力说明
GraphQL QuerytodoGetTodos(limit: 100): [Todo]
GraphQL MutationtodoCreateTodo(title: "xxx"): Todo
MCP TooltodoGetTodos, todoCreateTodo 工具供 AI 调用

项目结构

src/todo/
├── models.py       # Model 定义(核心)
├── app.py          # GraphQL 服务(几行代码)
├── mcp_server.py   # MCP Server(几行代码)
└── database.py     # 数据库配置

快速开始

# 安装依赖
uv sync

# 启动 GraphQL 服务
uv run python -m todo.app
# 访问 http://localhost:8000/graphql

# 启动 MCP Server (stdio)
uv run todo-mcp

# 启动 MCP Server (HTTP)
uv run todo-mcp --http

GraphQL API

访问 http://localhost:8000/graphql 进入 GraphiQL 界面。

Query

query {
  todoGetTodos { id title done comments { content } }
  todoGetTodo(id: 1) { id title }
  commentGetComments { id content todo_id }
  commentGetCommentsByTodo(todoId: 1) { id content }
}

Mutation

mutation {
  todoCreateTodo(title: "New Task") { id title }
  todoCreateTodoWithComments(title: "Task", comments: ["c1"]) { id }
  todoSetTodoDone(id: 1, done: true) { id done }
  todoDeleteTodo(id: 1)
  commentCreateComment(todoId: 1, content: "note") { id }
  commentDeleteComment(id: 1)
}

MCP Server

Claude Desktop 配置

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "todo": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/todo-mcp-demo", "todo-mcp"]
    }
  }
}

可用工具

所有 @query@mutation 自动暴露为 MCP 工具:

工具说明
todoGetTodos / todoGetTodo查询 Todo
todoCreateTodo / todoSetTodoDone / todoDeleteTodoTodo 增删改
commentGetComments / commentGetComment / commentGetCommentsByTodo查询评论
commentCreateComment / commentDeleteComment评论增删

技术栈

  • sqlmodel-graphql: 自动生成 GraphQL + MCP
  • SQLModel: ORM
  • FastAPI: Web 框架
  • FastMCP: MCP 协议

目录标签

目录标签

后端开发PythonClaudeGraphQL生成本地部署MCP服务自动化工具ORM

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

10

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP