[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ArcadeAI--arcade-mcp":3,"tool-ArcadeAI--arcade-mcp":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",157379,2,"2026-04-15T23:32:42",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":98,"forks":99,"last_commit_at":100,"license":101,"difficulty_score":32,"env_os":102,"env_gpu":103,"env_ram":103,"env_deps":104,"category_tags":111,"github_topics":112,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":128,"updated_at":129,"faqs":130,"releases":160},8067,"ArcadeAI\u002Farcade-mcp","arcade-mcp","The best way to create, deploy, and share MCP Servers","arcade-mcp 是一个专为构建、部署和分享 MCP（模型上下文协议）服务器而设计的开源框架。在 AI 应用开发中，让大模型安全地调用外部工具往往涉及复杂的认证管理和代码编排，arcade-mcp 正是为了解决这一痛点而生。它提供了一套标准化的开发流程，帮助开发者轻松将各类 API 转化为大模型可理解的工具，同时内置了完善的密钥管理与身份验证机制，显著降低了集成难度。\n\n这款工具主要面向 Python 开发者及 AI 应用工程师。无论是希望快速原型验证的研究人员，还是致力于生产级落地的工程团队，都能从中受益。其独特的技术亮点在于极简的命令行体验：只需运行 `arcade new` 指令，即可自动生成包含完整依赖配置、环境变量示例及基础工具代码的项目骨架。框架原生支持装饰器定义工具函数，并自动处理参数校验与文档生成，让开发者能专注于业务逻辑本身。此外，它还预置了如 Reddit 等常见服务的认证模板，进一步加速开发进程。如果你正在寻找一种高效、规范的方式来扩展大模型的能力边界，arcade-mcp 值得尝试。","\u003Ch3 align=\"center\">\n  \u003Ca name=\"readme-top\">\u003C\u002Fa>\n  \u003Cimg\n    src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FArcadeAI_arcade-mcp_readme_d54739ddee6f.png\"\n    style=\"width: 400px;\"\n  >\n\u003C\u002Fh3>\n\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Farcadeai\u002Farcade-mcp\u002Fblob\u002Fmain\u002FLICENSE\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg\" alt=\"License\">\n\u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002FArcadeAI\u002Farcade-mcp\" alt=\"GitHub last commit\">\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Farcadeai\u002Farcade-mcp\u002Factions?query=branch%3Amain\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Farcadeai\u002Farcade-mcp\u002Fmain.yml?branch=main\" alt=\"GitHub Actions Status\">\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Farcade-mcp\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Farcade-mcp\" alt=\"Python Version\">\n\u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cdiv>\n  \u003Cp align=\"center\" style=\"display: flex; justify-content: center; gap: 10px;\">\n    \u003Ca href=\"https:\u002F\u002Fx.com\u002FTryArcade\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFollow%20on%20X-000000?style=for-the-badge&logo=x&logoColor=white\" alt=\"Follow on X\" style=\"width: 125px;height: 25px; padding-top: .8px; border-radius: 5px;\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Farcade-mcp\" >\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFollow%20on%20LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white\" alt=\"Follow on LinkedIn\" style=\"width: 150px; padding-top: 1.5px;height: 22px; border-radius: 5px;\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fdiscord.com\u002Finvite\u002FGUZEMpEZ9p\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FJoin%20our%20Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white\" alt=\"Join our Discord\" style=\"width: 150px; padding-top: 1.5px; height: 22px; border-radius: 5px;\" \u002F>\n    \u003C\u002Fa>\n  \u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\" style=\"display: flex; justify-content: center; gap: 5px; font-size: 15px;\">\n    \u003Ca href=\"https:\u002F\u002Fdocs.arcade.dev\u002Fen\u002Fresources\u002Fintegrations\" target=\"_blank\">Prebuilt Tools\u003C\u002Fa> •\n    \u003Ca href=\"https:\u002F\u002Fdocs.arcade.dev\u002Fen\u002Fresources\u002Fcontact-us\" target=\"_blank\">Contact Us\u003C\u002Fa>\n\n# Arcade MCP Server Framework\n\n* **To see example servers built with Arcade MCP Server Framework (this repo), check out our [examples](examples\u002F)**\n\n* **To learn more about the Arcade MCP Server Framework (this repo), check out our [Arcade MCP documentation](https:\u002F\u002Fdocs.arcade.dev\u002Fen\u002Fguides\u002Fcreate-tools\u002Ftool-basics\u002Fbuild-mcp-server)**\n\n* **To learn more about other offerings from Arcade.dev, check out our [documentation](https:\u002F\u002Fdocs.arcade.dev\u002Fen\u002Fhome).**\n\n_Pst. hey, you, give us a star if you like it!_\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FArcadeAI\u002Farcade-mcp\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FArcadeAI\u002Farcade-mcp.svg\" alt=\"GitHub stars\">\n\u003C\u002Fa>\n\n## Quick Start: Create a New Server\n\nThe fastest way to get started is with the `arcade new` CLI command, which creates a complete MCP server project:\n\n```bash\n# Install the CLI\nuv tool install arcade-mcp\n\n# Create a new server project\narcade new my_server\n\n# Navigate to the project\ncd my_server\u002Fsrc\u002Fmy_server\n```\n\nThis generates a project with:\n\n- **server.py** - Main server file with MCPApp and example tools\n\n- **pyproject.toml** - Dependencies and project configuration\n\n- **.env.example** - Example `.env` file containing a secret required by one of the generated tools in `server.py`\n\nThe generated `server.py` includes proper command-line argument handling and three example tools:\n\n```python\n#!\u002Fusr\u002Fbin\u002Fenv python3\n\"\"\"simple_server MCP server\"\"\"\n\nimport sys\nfrom typing import Annotated\n\nimport httpx\nfrom arcade_mcp_server import Context, MCPApp\nfrom arcade_mcp_server.auth import Reddit\n\napp = MCPApp(name=\"simple_server\", version=\"1.0.0\", log_level=\"DEBUG\")\n\n\n@app.tool\ndef greet(name: Annotated[str, \"The name of the person to greet\"]) -> str:\n    \"\"\"Greet a person by name.\"\"\"\n    return f\"Hello, {name}!\"\n\n\n# To use this tool locally, you need to either set the secret in the .env file or as an environment variable\n@app.tool(requires_secrets=[\"MY_SECRET_KEY\"])\ndef whisper_secret(context: Context) -> Annotated[str, \"The last 4 characters of the secret\"]:\n    \"\"\"Reveal the last 4 characters of a secret\"\"\"\n    # Secrets are injected into the context at runtime.\n    # LLMs and MCP clients cannot see or access your secrets\n    # You can define secrets in a .env file.\n    try:\n        secret = context.get_secret(\"MY_SECRET_KEY\")\n    except Exception as e:\n        return str(e)\n\n    return \"The last 4 characters of the secret are: \" + secret[-4:]\n\n# To use this tool locally, you need to install the Arcade CLI (uv tool install arcade-mcp)\n# and then run 'arcade login' to authenticate.\n@app.tool(requires_auth=Reddit(scopes=[\"read\"]))\nasync def get_posts_in_subreddit(\n    context: Context, subreddit: Annotated[str, \"The name of the subreddit\"]\n) -> dict:\n    \"\"\"Get posts from a specific subreddit\"\"\"\n    # Normalize the subreddit name\n    subreddit = subreddit.lower().replace(\"r\u002F\", \"\").replace(\" \", \"\")\n\n    # Prepare the httpx request\n    # OAuth token is injected into the context at runtime.\n    # LLMs and MCP clients cannot see or access your OAuth tokens.\n    oauth_token = context.get_auth_token_or_empty()\n    headers = {\n        \"Authorization\": f\"Bearer {oauth_token}\",\n        \"User-Agent\": \"{{ toolkit_name }}-mcp-server\",\n    }\n    params = {\"limit\": 5}\n    url = f\"https:\u002F\u002Foauth.reddit.com\u002Fr\u002F{subreddit}\u002Fhot\"\n\n    # Make the request\n    async with httpx.AsyncClient() as client:\n        response = await client.get(url, headers=headers, params=params)\n        response.raise_for_status()\n\n        # Return the response\n        return response.json()\n\n# Run with specific transport\nif __name__ == \"__main__\":\n    # Get transport from command line argument, default to \"stdio\"\n    # - \"stdio\" (default): Standard I\u002FO for Claude Desktop, CLI tools, etc.\n    #   Supports tools that require_auth or require_secrets out-of-the-box\n    # - \"http\": HTTPS streaming for Cursor, VS Code, etc.\n    #   Does not support tools that require_auth or require_secrets unless the server is deployed\n    #   using 'arcade deploy' or added in the Arcade Developer Dashboard with 'Arcade' server type\n    transport = sys.argv[1] if len(sys.argv) > 1 else \"stdio\"\n\n    # Run the server\n    app.run(transport=transport, host=\"127.0.0.1\", port=8000)\n\n```\n\nThis approach gives you:\n- **Complete Project Setup** - Everything you need in one command\n\n- **Best Practices** - Proper dependency management with pyproject.toml\n\n- **Example Code** - Learn from working examples of common patterns\n\n- **Production Ready** - Structured for growth and deployment\n\n### Running Your Server\n\nRun your server directly with Python:\n\n```bash\n# Run with stdio transport (default)\nuv run server.py\n\n# Run with http transport via command line argument\nuv run server.py http\n\n# Or use python directly\npython server.py http\npython server.py stdio\n```\n\nYour server will start and listen for connections. With HTTP transport, you can access the API docs at http:\u002F\u002F127.0.0.1:8000\u002Fdocs.\n\n### Configure MCP Clients\n\nOnce your server is running, connect it to your favorite AI assistant:\n\n```bash\narcade configure claude # Configure Claude Desktop to connect to your stdio server in your current directory\narcade configure cursor --transport http --port 8080 # Configure Cursor to connect to your local HTTP server on port 8080\narcade configure vscode --entrypoint my_server.py # Configure VSCode to connect to your stdio server that will run when my_server.py is executed directly\n```\n\n## Installing this Repo from Source\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FArcadeAI\u002Farcade-mcp.git && cd arcade-mcp && make install\n```\n\n## Support and Community\n\n-   **Discord:** Join our [Discord community](https:\u002F\u002Fdiscord.com\u002Finvite\u002FGUZEMpEZ9p) for real-time support and discussions.\n-   **GitHub:** Contribute or report issues on the [Arcade GitHub repository](https:\u002F\u002Fgithub.com\u002FArcadeAI\u002Farcade-mcp).\n-   **Documentation:** Find in-depth guides and API references at [Arcade Documentation](https:\u002F\u002Fdocs.arcade.dev).\n","\u003Ch3 align=\"center\">\n  \u003Ca name=\"readme-top\">\u003C\u002Fa>\n  \u003Cimg\n    src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FArcadeAI_arcade-mcp_readme_d54739ddee6f.png\"\n    style=\"width: 400px;\"\n  >\n\u003C\u002Fh3>\n\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Farcadeai\u002Farcade-mcp\u002Fblob\u002Fmain\u002FLICENSE\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg\" alt=\"License\">\n\u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002FArcadeAI\u002Farcade-mcp\" alt=\"GitHub last commit\">\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Farcadeai\u002Farcade-mcp\u002Factions?query=branch%3Amain\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Farcadeai\u002Farcade-mcp\u002Fmain.yml?branch=main\" alt=\"GitHub Actions Status\">\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Farcade-mcp\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Farcade-mcp\" alt=\"Python Version\">\n\u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cdiv>\n  \u003Cp align=\"center\" style=\"display: flex; justify-content: center; gap: 10px;\">\n    \u003Ca href=\"https:\u002F\u002Fx.com\u002FTryArcade\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFollow%20on%20X-000000?style=for-the-badge&logo=x&logoColor=white\" alt=\"Follow on X\" style=\"width: 125px;height: 25px; padding-top: .8px; border-radius: 5px;\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Farcade-mcp\" >\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFollow%20on%20LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white\" alt=\"Follow on LinkedIn\" style=\"width: 150px; padding-top: 1.5px;height: 22px; border-radius: 5px;\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fdiscord.com\u002Finvite\u002FGUZEMpEZ9p\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FJoin%20our%20Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white\" alt=\"Join our Discord\" style=\"width: 150px; padding-top: 1.5px; height: 22px; border-radius: 5px;\" \u002F>\n    \u003C\u002Fa>\n  \u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\" style=\"display: flex; justify-content: center; gap: 5px; font-size: 15px;\">\n    \u003Ca href=\"https:\u002F\u002Fdocs.arcade.dev\u002Fen\u002Fresources\u002Fintegrations\" target=\"_blank\">预构建工具\u003C\u002Fa> •\n    \u003Ca href=\"https:\u002F\u002Fdocs.arcade.dev\u002Fen\u002Fresources\u002Fcontact-us\" target=\"_blank\">联系我们\u003C\u002Fa>\n\n# Arcade MCP 服务器框架\n\n* **要查看使用 Arcade MCP 服务器框架（本仓库）构建的示例服务器，请参阅我们的 [示例](examples\u002F)。**\n\n* **要了解更多关于 Arcade MCP 服务器框架（本仓库）的信息，请参阅我们的 [Arcade MCP 文档](https:\u002F\u002Fdocs.arcade.dev\u002Fen\u002Fguides\u002Fcreate-tools\u002Ftool-basics\u002Fbuild-mcp-server)。**\n\n* **要了解 Arcade.dev 的其他产品和服务，请参阅我们的 [文档](https:\u002F\u002Fdocs.arcade.dev\u002Fen\u002Fhome)。**\n\n_顺便说一句，如果你喜欢这个项目，别忘了给我们点个赞哦！_\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FArcadeAI\u002Farcade-mcp\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FArcadeAI\u002Farcade-mcp.svg\" alt=\"GitHub 星标\">\n\u003C\u002Fa>\n\n## 快速入门：创建一个新的服务器\n\n最快捷的入门方式是使用 `arcade new` CLI 命令，它会创建一个完整的 MCP 服务器项目：\n\n```bash\n# 安装 CLI 工具\nuv tool install arcade-mcp\n\n# 创建一个新的服务器项目\narcade new my_server\n\n# 进入项目目录\ncd my_server\u002Fsrc\u002Fmy_server\n```\n\n这将生成一个包含以下内容的项目：\n\n- **server.py** - 主服务器文件，包含 MCPApp 和示例工具\n\n- **pyproject.toml** - 依赖项和项目配置\n\n- **.env.example** - 示例 `.env` 文件，其中包含 `server.py` 中生成的一个工具所需的密钥\n\n生成的 `server.py` 包含完善的命令行参数处理以及三个示例工具：\n\n```python\n#!\u002Fusr\u002Fbin\u002Fenv python3\n\"\"\"simple_server MCP 服务器\"\"\"\n\nimport sys\nfrom typing import Annotated\n\nimport httpx\nfrom arcade_mcp_server import Context, MCPApp\nfrom arcade_mcp_server.auth import Reddit\n\napp = MCPApp(name=\"simple_server\", version=\"1.0.0\", log_level=\"DEBUG\")\n\n\n@app.tool\ndef greet(name: Annotated[str, \"要问候的人的名字\"]) -> str:\n    \"\"\"用名字问候某人。\"\"\"\n    return f\"你好，{name}！\"\n\n\n# 要在本地使用此工具，你需要在 .env 文件中设置密钥，或者将其作为环境变量。\n@app.tool(requires_secrets=[\"MY_SECRET_KEY\"])\ndef whisper_secret(context: Context) -> Annotated[str, \"密钥的最后4位字符\"]:\n    \"\"\"揭示密钥的最后4位字符\"\"\"\n    # 密钥会在运行时注入到上下文中。\n    # LLM 和 MCP 客户端无法看到或访问你的密钥。\n    # 你可以将密钥定义在 .env 文件中。\n    try:\n        secret = context.get_secret(\"MY_SECRET_KEY\")\n    except Exception as e:\n        return str(e)\n\n    return \"密钥的最后4位字符是：\" + secret[-4:]\n\n# 要在本地使用此工具，你需要安装 Arcade CLI（uv tool install arcade-mcp），然后运行 'arcade login' 进行认证。\n@app.tool(requires_auth=Reddit(scopes=[\"read\"]))\nasync def get_posts_in_subreddit(\n    context: Context, subreddit: Annotated[str, \"子版块的名字\"]\n) -> dict:\n    \"\"\"从特定子版块获取帖子\"\"\"\n    # 规范化子版块名称\n    subreddit = subreddit.lower().replace(\"r\u002F\", \"\").replace(\" \", \"\")\n\n    # 准备 httpx 请求\n    # OAuth 令牌会在运行时注入到上下文中。\n    # LLM 和 MCP 客户端无法看到或访问你的 OAuth 令牌。\n    oauth_token = context.get_auth_token_or_empty()\n    headers = {\n        \"Authorization\": f\"Bearer {oauth_token}\",\n        \"User-Agent\": \"{{ toolkit_name }}-mcp-server\",\n    }\n    params = {\"limit\": 5}\n    url = f\"https:\u002F\u002Foauth.reddit.com\u002Fr\u002F{subreddit}\u002Fhot\"\n\n    # 发起请求\n    async with httpx.AsyncClient() as client:\n        response = await client.get(url, headers=headers, params=params)\n        response.raise_for_status()\n\n        # 返回响应\n        return response.json()\n\n# 使用指定传输方式运行\nif __name__ == \"__main__\":\n    # 从命令行参数获取传输方式，默认为 \"stdio\"\n    # - \"stdio\"（默认）：用于 Claude Desktop、CLI 工具等的标准 I\u002FO。\n    #   可以直接支持需要身份验证或密钥的工具。\n    # - \"http\"：用于 Cursor、VS Code 等的 HTTPS 流式传输。\n    #   不支持需要身份验证或密钥的工具，除非服务器通过 'arcade deploy' 部署，或者在 Arcade 开发者仪表板中将服务器类型设置为 'Arcade'。\n    transport = sys.argv[1] if len(sys.argv) > 1 else \"stdio\"\n\n    # 运行服务器\n    app.run(transport=transport，host=\"127.0.0.1\"，port=8000)\n\n```\n\n这种方法为你提供了：\n- **完整的项目设置** - 一切只需一条命令即可完成\n\n- **最佳实践** - 使用 pyproject.toml 进行规范的依赖管理\n\n- **示例代码** - 从常见模式的实际示例中学习\n\n- **生产就绪** - 结构化设计，便于扩展和部署\n\n### 运行你的服务器\n\n你可以直接使用 Python 运行你的服务器：\n\n```bash\n# 使用 stdio 传输方式（默认）\nuv run server.py\n\n# 使用 http 传输方式，通过命令行参数指定\nuv run server.py http\n\n# 或者直接使用 python\npython server.py http\npython server.py stdio\n```\n\n你的服务器将会启动并监听连接。如果使用 HTTP 传输方式，你可以在 http:\u002F\u002F127.0.0.1:8000\u002Fdocs 访问 API 文档。\n\n### 配置 MCP 客户端\n\n服务器启动后，将其连接到您喜爱的 AI 助手：\n\n```bash\narcade configure claude # 配置 Claude Desktop 以连接到当前目录下的 stdio 服务器\narcade configure cursor --transport http --port 8080 # 配置 Cursor 以连接到本地 HTTP 服务器，端口为 8080\narcade configure vscode --entrypoint my_server.py # 配置 VSCode 以连接到 stdio 服务器，该服务器将在直接执行 my_server.py 时启动\n```\n\n## 从源代码安装此仓库\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FArcadeAI\u002Farcade-mcp.git && cd arcade-mcp && make install\n```\n\n## 支持与社区\n\n-   **Discord：** 加入我们的 [Discord 社区](https:\u002F\u002Fdiscord.com\u002Finvite\u002FGUZEMpEZ9p)，获取实时支持与交流。\n-   **GitHub：** 您可以在 [Arcade GitHub 仓库](https:\u002F\u002Fgithub.com\u002FArcadeAI\u002Farcade-mcp) 上贡献代码或报告问题。\n-   **文档：** 在 [Arcade 文档](https:\u002F\u002Fdocs.arcade.dev) 中查找深入指南和 API 参考。","# Arcade MCP Server Framework 快速上手指南\n\nArcade MCP 是一个用于构建模型上下文协议（MCP）服务器的 Python 框架，帮助开发者快速创建连接 AI 助手与外部工具\u002F数据的桥梁。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows (WSL 推荐)\n*   **Python 版本**：Python 3.9 或更高版本\n*   **包管理工具**：推荐使用 `uv` (高速 Python 包管理器)，也可使用标准 `pip`\n*   **网络环境**：需能访问 GitHub 和 PyPI (国内用户若遇下载缓慢，可配置国内镜像源)\n\n> **提示**：如果您尚未安装 `uv`，可以通过以下命令安装：\n> ```bash\n> curl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh\n> ```\n\n## 安装步骤\n\n最快捷的方式是使用 Arcade 提供的 CLI 工具来初始化和运行项目。\n\n### 1. 安装 CLI 工具\n使用 `uv` 安装 `arcade-mcp` 命令行工具：\n\n```bash\nuv tool install arcade-mcp\n```\n\n### 2. 创建新项目\n使用 `arcade new` 命令生成一个完整的 MCP 服务器项目结构：\n\n```bash\narcade new my_server\n```\n\n### 3. 进入项目目录\n切换到生成的项目源码目录：\n\n```bash\ncd my_server\u002Fsrc\u002Fmy_server\n```\n\n此时，您将拥有以下核心文件：\n*   `server.py`: 包含 MCP 应用入口和示例工具的主文件。\n*   `pyproject.toml`: 项目依赖和配置。\n*   `.env.example`: 环境变量示例文件（用于配置密钥）。\n\n## 基本使用\n\n### 1. 运行服务器\n项目默认支持两种传输模式：`stdio` (标准输入输出，适用于 Claude Desktop 等) 和 `http` (适用于 Cursor、VS Code 等)。\n\n**启动 stdio 模式 (默认):**\n```bash\nuv run server.py\n```\n\n**启动 http 模式:**\n```bash\nuv run server.py http\n```\n*注：使用 HTTP 模式时，可在浏览器访问 `http:\u002F\u002F127.0.0.1:8000\u002Fdocs` 查看 API 文档。*\n\n### 2. 代码示例解析\n生成的 `server.py` 包含了三个典型工具示例，展示了框架的核心能力：\n\n*   **基础工具**: 简单的字符串处理 (`greet`)。\n*   **密钥管理**: 安全地读取环境变量中的敏感信息 (`whisper_secret`)，LLM 无法直接看到密钥明文。\n*   **OAuth 认证**: 处理需要用户授权的第三方 API 调用 (`get_posts_in_subreddit` 示例了 Reddit 集成)。\n\n核心代码结构如下：\n\n```python\nfrom arcade_mcp_server import Context, MCPApp\n\napp = MCPApp(name=\"simple_server\", version=\"1.0.0\", log_level=\"DEBUG\")\n\n@app.tool\ndef greet(name: str) -> str:\n    \"\"\"Greet a person by name.\"\"\"\n    return f\"Hello, {name}!\"\n\n@app.tool(requires_secrets=[\"MY_SECRET_KEY\"])\ndef whisper_secret(context: Context) -> str:\n    \"\"\"Reveal the last 4 characters of a secret\"\"\"\n    secret = context.get_secret(\"MY_SECRET_KEY\")\n    return \"The last 4 characters of the secret are: \" + secret[-4:]\n```\n\n### 3. 连接 AI 客户端\n服务器运行后，使用 CLI 工具自动配置您的 AI 编辑器或助手：\n\n**配置 Claude Desktop (stdio 模式):**\n```bash\narcade configure claude\n```\n\n**配置 Cursor (http 模式):**\n```bash\narcade configure cursor --transport http --port 8000\n```\n\n**配置 VS Code (stdio 模式):**\n```bash\narcade configure vscode --entrypoint my_server.py\n```\n\n配置完成后，重启对应的 AI 客户端，即可在对话中调用您编写的工具。","某初创公司的后端工程师需要在半天内为内部 AI 助手集成 Slack 通知和 GitHub 状态查询功能，以便团队能自然语言获取项目进度。\n\n### 没有 arcade-mcp 时\n- **重复造轮子**：工程师需手动搭建 HTTP 服务器、解析 MCP 协议消息并处理生命周期管理，耗费大量时间在基础设施而非业务逻辑上。\n- **鉴权复杂易错**：处理 OAuth 流程（如连接 Slack 或 GitHub）需要编写繁琐的回调代码和安全存储令牌，极易出现安全漏洞。\n- **部署维护困难**：缺乏标准化的项目模板，每次新建服务都要重新配置依赖和环境变量，导致不同成员开发的工具风格迥异，难以统一维护。\n- **调试门槛高**：缺少内置的日志和上下文管理机制，排查工具调用失败的原因如同“黑盒”摸索，严重拖慢开发节奏。\n\n### 使用 arcade-mcp 后\n- **极速启动开发**：通过 `arcade new` 命令一键生成包含标准结构和示例代码的项目，工程师可直接聚焦于编写具体的业务工具函数。\n- **内置安全鉴权**：利用框架预置的 Auth 模块（如 `Reddit` 或其他提供商），仅需简单装饰器即可安全处理复杂的 OAuth 流程，自动管理密钥注入。\n- **标准化与复用**：生成的 `pyproject.toml` 和目录结构确保了所有微服务的一致性，团队成员可轻松理解彼此代码，便于后续共享和扩展。\n- **智能上下文支持**：框架自动注入 `Context` 对象并提供完善的日志系统，让工具能感知会话状态，故障排查变得直观高效。\n\narcade-mcp 将原本需要数天的 MCP 服务器构建与鉴权工作压缩至小时级，让开发者能专注于创造有价值的 AI 工具本身。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FArcadeAI_arcade-mcp_b1e77741.png","ArcadeAI","Arcade.dev","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FArcadeAI_c3a11f90.png","Home of Arcade.dev",null,"dev@arcade.dev","tryarcade","https:\u002F\u002Fdocs.arcade.dev","https:\u002F\u002Fgithub.com\u002FArcadeAI",[82,86,90,94],{"name":83,"color":84,"percentage":85},"Python","#3572A5",99.1,{"name":87,"color":88,"percentage":89},"Shell","#89e051",0.5,{"name":91,"color":92,"percentage":93},"Jinja","#a52a22",0.3,{"name":95,"color":96,"percentage":97},"Makefile","#427819",0.2,860,87,"2026-04-15T23:55:10","MIT","Linux, macOS, Windows","未说明",{"notes":105,"python":106,"dependencies":107},"该工具是一个 MCP 服务器框架，主要用于构建 AI 代理工具，不涉及重型模型推理，因此无特殊 GPU 或大内存需求。推荐使用 'uv' 工具进行依赖管理和项目运行。部分功能（如 OAuth 认证）需要安装 Arcade CLI 并执行 'arcade login' 进行身份验证。支持 stdio 和 http 两种传输模式，其中 http 模式在本地运行时不支持需要认证或密钥的工具，除非通过 'arcade deploy' 部署。","3.8+",[108,109,110],"arcade-mcp-server","httpx","uv",[52,14,13,15,35],[113,114,115,116,117,118,119,120,121,122,123,124,125,126,127],"ai","llm-tool-call","llm-tools","toolcalling","arcade-ai","arcade","mcp","mcp-client","mcp-servers","mcp-tools","ai-gateway","mcp-gateway","model-context-protocol","model-context-protocol-sdk","mcp-runtime","2026-03-27T02:49:30.150509","2026-04-16T16:01:45.199211",[131,136,141,146,151,156],{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},36120,"在使用需要授权的工具时，即使提供了有效的凭据，为什么仍然出现授权错误？","这通常是因为代码中的用户 ID 占位符未被替换。请检查代码，确保将 `'{arcade_user_id}'` 替换为您实际的邮箱地址（例如以 `...221@gmail.com` 结尾的邮箱）。如果问题仍然存在，请提供 URL 查询参数中的 `flow_id` 截图以及展开的开发人员信息以便进一步排查。","https:\u002F\u002Fgithub.com\u002FArcadeAI\u002Farcade-mcp\u002Fissues\u002F637",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},36121,"如何在本地运行 Arcade Engine 和 Worker 并通过 MCP 端点访问暴露的工具？","目前本地运行的文档尚未完全公开。如果您需要在本地运行 Arcade Engine（端口 9099）和 Worker（端口 8002）并通过 MCP 客户端访问工具，建议直接发送邮件至 dev@arcade.dev 联系开发团队获取最新的配置指南和帮助。尝试直接使用 `localhost:9099\u002Fv1\u002Fmcp` 可能无法正常工作，因为相关功能仍在完善中。","https:\u002F\u002Fgithub.com\u002FArcadeAI\u002Farcade-mcp\u002Fissues\u002F411",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},36122,"在 Mastra 集成中，如何确定正确的 Toolkit 名称（例如是 `google_flights` 还是 `GoogleFlights`）？","Toolkit 的名称应与 Arcade 仪表板（Dashboard）中显示的名称一致，通常是大驼峰格式（例如 `GoogleFlights`），而不是文档 URL 路径中的下划线格式。如果在 Mastra 中遇到工具架构生成错误，请确认使用的是仪表板中的确切名称。如果问题依旧，可能是 `arcade-js` 包中的工具处理函数存在兼容性问题，建议参考官方示例代码进行对比调试。","https:\u002F\u002Fgithub.com\u002FArcadeAI\u002Farcade-mcp\u002Fissues\u002F560",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},36123,"创建 Stripe 集成时遇到 \"invalid tool name\" (无效工具名称) 错误怎么办？","该错误通常表示传递给集成创建函数的工具名称格式不正确。请检查代码中调用 `client.tools.authorize` 或创建集成时使用的名称参数。确保使用的是 Arcade API 定义的标准工具名称，而不是简单的服务名（如仅传递 \"stripe\" 可能不够，需确认完整的工具标识符）。如果不确定正确的工具名称，建议查阅最新的 API 文档或联系支持团队确认命名规范。","https:\u002F\u002Fgithub.com\u002FArcadeAI\u002Farcade-mcp\u002Fissues\u002F547",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},36124,"如何为 CrewAI 添加包含“人在回路”（Human-in-the-loop）功能的高级示例？","要实现人在回路功能，需要创建一个自定义的工具执行器（custom tool executor），供 `ArcadeToolManager` 使用。该执行器应在工具执行前暂停流程，请求用户的批准、拒绝或反馈。目前仓库中已有一些基础示例，但社区欢迎贡献更复杂的示例，例如多智能体协作或带有审批流程的 Crew。您可以参考现有的 `simple_crewai_with_arcade_tool.py` 并进行扩展。","https:\u002F\u002Fgithub.com\u002FArcadeAI\u002Farcade-mcp\u002Fissues\u002F146",{"id":157,"question_zh":158,"answer_zh":159,"source_url":140},36125,"配置 `engine.yaml` 使用环境变量加载密钥时，为什么报错提示“键值不能为空或包含空白字符”？","这通常是因为环境变量未正确加载到 Docker 容器中，或者变量值本身包含不可见的空白字符。请确保 `engine.env` 文件正确挂载且格式无误（无多余空格或换行）。如果问题持续，特别是涉及 MCP 的手动启用流程或特定配置限制时，建议发送邮件至 support@arcade.dev 联系支持团队，他们可以提供针对当前版本规格的手动配置指导。",[]]