返回市场
MCP启动模板

MCP启动模板

作者:f108 星标更新:2025-11-21

项目介绍

MCP Startup Boilerplate v0.0.1

一个强大且免费的Rails样板项目,用于构建与Claude AI无缝集成的AI驱动应用程序,通过模型上下文协议(MCP)。此样板项目内置用户认证和OAuth2提供者功能。

🚀 特性

  • 用户认证:由Devise驱动的完整认证系统
  • OAuth2提供者:使用Doorkeeper实现的完整OAuth2服务器
  • MCP集成:使用fast-mcp实现与Claude AI的无缝集成
  • 支付处理:集成Stripe支付,适用于具有订阅选项的工具
  • 现代Rails:基于Rails 8.0.2,包含最新特性
  • Tailwind CSS:使用Tailwind实现美观且响应式的UI
  • Hotwire:使用Turbo和Stimulus实现现代且快速的前端

📋 要求

  • Ruby 3.2+
  • PostgreSQL
  • Node.js & Yarn(用于前端资源)
  • Stripe账户(用于支付处理)

🔧 设置

1. 克隆仓库

git clone https://github.com/f/mcp-startup-boilerplate mcp-startup
cd mcp-startup

2. 安装依赖

bundle install
yarn install

3. 设置数据库

rails db:create db:migrate db:seed

4. 配置Stripe(可选,用于支付功能)

在您的环境中设置Stripe API密钥:

export STRIPE_PUBLISHABLE_KEY="pk_test_your_key"
export STRIPE_SECRET_KEY="sk_test_your_key"
export STRIPE_WEBHOOK_SECRET="whsec_your_webhook_key"

对于开发环境,您也可以在config/initializers/stripe.rb中更新这些设置。

5. 启动服务器

rails server

现在,您的应用程序应该可以在http://localhost:3000运行。

💳 支付集成

此应用程序内置了Stripe支付处理功能,适用于MCP工具:

订阅计划

  • 标准计划:每调用工具收费$0.03,相比按需付费节省40%
  • 企业计划:每调用工具收费$0.03,并享有额外福利及无限使用

按需付费定价

  • 默认定价:每调用工具收费$0.05(可根据工具自定义)

支付管理

  • 用户友好的订阅管理界面
  • 详细的使用跟踪仪表板
  • 工具使用历史记录和分析

🧰 付费工具框架

应用程序包括一个PaidTool基类,允许您轻松创建需要支付的工具:

class YourPaidTool < PaidTool
  description "您的付费工具描述"
  
  # 自定义定价(可选,默认为$0.05)
  def price_cents
    8 # 每次调用$0.08
  end
  
  def call
    return { error: "用户没有有效的订阅" } unless charge_user
  
    # 在收费后执行您的实现
  end
end

如何工作

  1. 当调用工具时,首先检查用户是否有有效订阅
  2. 如果已订阅,则工具执行并记录使用情况,无需额外费用
  3. 如果未订阅,则通过Stripe向用户收取工具费用
  4. 所有工具使用情况均被跟踪,用于分析和计费目的

扩展PaidTool

您可以通过以下方式自定义定价和行为:

  • 覆盖price_cents以设置特定工具的自定义定价
  • 创建不同价格级别的工具类别
  • 为高级订阅级别添加特定工具功能

🔒 OAuth2集成

此样板项目包含由Doorkeeper驱动的完整OAuth2服务器实现。关键端点:

  • OAuth授权:/oauth/authorize
  • 令牌端点:/oauth/token
  • 应用注册:/oauth/applications
  • 令牌撤销:/oauth/revoke

OAuth服务器支持:

  • 授权码流
  • 客户端凭证流
  • 刷新令牌流
  • PKCE扩展(S256和平凡)

🤖 MCP集成

此样板项目预配置为通过模型上下文协议与Claude AI工作,使AI应用能够安全地访问您的应用程序数据和功能。

可用的MCP资源

  • users/me - 访问有关已认证用户的资料信息

可用的MCP工具

  • MeTool - 获取当前已认证用户的信息(不可删除)
  • FinancialCalculatorTool - 示例付费计算器工具

🔌 与Claude集成

要将您的应用程序连接到Claude:

  1. 在Claude Desktop或其他Claude集成中注册您的应用程序
  2. 在Claude的配置中配置您的MCP服务器:
{
  "mcpServers": {
    "your-server-name": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://your-server-url/mcp/sse"
      ]
    }
  }
}

对于Claude Desktop,该文件位于:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

🔧 自定义

添加新的MCP工具

  1. app/tools/中创建一个新的工具:
class YourTool < ApplicationTool
  description '您的工具描述'

  arguments do
    required(:param_name).filled(:string).description('参数描述')
  end

  def call(param_name:)
    # 您的实现
    
    # 访问当前已认证用户
    user = current_user
    # 使用用户数据进行操作
    { user_id: user.id, result: "处理了#{user.email}的数据" }
  end
end
  1. 在您的MCP配置中注册该工具

添加新的MCP资源

  1. app/resources/中创建一个新的资源:
class YourResource < ApplicationResource
  uri 'your/resource/path'
  resource_name '您的资源'
  description '您的资源描述'
  mime_type 'application/json'

  def content
    # 访问当前已认证用户
    user = current_user
    
    JSON.generate({
      user_id: user.id,
      email: user.email,
      # 其他用户特定数据
      custom_data: user.custom_data
    })
  end
end
  1. 在您的MCP配置中注册该资源

使用当前用户

MCP工具和资源都可以访问current_user方法,该方法返回从OAuth令牌获取的已认证用户。这允许您:

  • 获取用户特定的数据
  • 执行用户授权的操作
  • 通过将操作范围限制在已认证用户来维护安全性
  • 根据用户上下文构建个性化的AI体验

出于安全考虑,请始终在暴露敏感数据或执行关键操作之前验证用户权限。

🛡️ 安全注意事项

  • 所有MCP端点都需要适当的OAuth认证
  • 用户数据仅对授权的应用程序可用
  • 用户可以随时撤销OAuth令牌
  • 支持公共客户端的PKCE扩展
  • Stripe支付采用现代最佳实践安全处理

📚 进一步阅读

📝 许可证

本项目在MIT许可证下可用。

👥 贡献

欢迎贡献、问题报告和功能请求!