MCP启动锅炉板v0.0.1
一个强大、免费、即用型的Rails样板,用于构建使用模型上下文协议(MCP)与Claude AI无缝集成的AI驱动应用程序。此样板包括用户身份验证和开箱即用的OAuth2提供程序功能。
🚀 特性
- 用户认证:Devise提供的完整身份验证系统
- OAuth2提供者:使用Dookeeper实现完整的OAuth2服务器
- MCP集成:使用快速mcp无缝集成Claude AI
- 支付处理:为具有订阅选项的工具集成Stripe支付
- 现代铁路:基于Rails 8.0.2构建,具有最新功能
- 顺风CSS:具有Tailwind的漂亮、响应迅速的用户界面
- 热线:配备Turbo和Stimulus的现代、快速前端
📋 需求
- Ruby 3.2+
- PostgreSQL
- Node.js和Yarn(用于前端资产)
- 条纹账户(用于支付处理)
🔧 设置
1.克隆存储库
git clone https://github.com/f/mcp-startup-boilerplate mcp-startup
cd mcp-startup2.安装依赖项
bundle install
yarn install3.设置数据库
rails db:create db:migrate db:seed4.配置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
💳 支付集成
此应用程序为MCP工具提供了内置的Stripe支付处理:
订阅计划
- 标准计划:每次工具调用0.03美元,与现收现付相比可节省40%
- 企业计划:每次工具调用0.03美元,附带额外福利和无限制使用
按使用付费定价
- 默认定价:每次工具调用0.05美元(可按工具定制)
支付管理
- 用户友好的订阅管理界面
- 详细的使用情况跟踪仪表板
- 工具使用历史和分析
🧰 付费工具框架
该应用程序包括 PaidTool 基类,允许您轻松创建需要付款的工具:
class YourPaidTool < PaidTool
description "Your paid tool description"
# Custom pricing (optional, defaults to $0.05)
def price_cents
8 # $0.08 per call
end
def call
return { error: "User has no active subscription" } unless charge_user
# Your implementation here after charge
end
endPaidTool的工作原理
- 当调用工具时,它首先检查用户是否有活动订阅
- 如果订阅,该工具将执行并记录使用情况,无需额外收费
- 如果没有订阅,用户将通过Stripe收取工具的价格
- 出于分析和计费目的,跟踪所有工具的使用情况
扩展PaidTool
您可以通过以下方式自定义定价和行为:
- 覆写
price_cents为特定工具设置自定义定价 - 创建具有不同价位的不同工具类别
- 为高级订阅层添加特定于工具的功能
🔒 OAuth2集成
此样板包含由Dookeeper提供支持的完整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 Desktop或其他Claude集成中注册您的应用程序
- 在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 - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
🔧 定制
添加新的MCP工具
- 在中创建新工具
app/tools/:
class YourTool < ApplicationTool
description 'Your tool description'
arguments do
required(:param_name).filled(:string).description('Parameter description')
end
def call(param_name:)
# Your implementation
# Access the current authenticated user
user = current_user
# Do something with the user data
{ user_id: user.id, result: "Processed data for #{user.email}" }
end
end- 在MCP配置中注册该工具
添加新的MCP资源
- 在中创建新资源
app/resources/:
class YourResource < ApplicationResource
uri 'your/resource/path'
resource_name 'Your Resource'
description 'Your resource description'
mime_type 'application/json'
def content
# Access the current authenticated user
user = current_user
JSON.generate({
user_id: user.id,
email: user.email,
# Additional user-specific data
custom_data: user.custom_data
})
end
end- 在MCP配置中注册资源
与当前用户一起工作
MCP工具和资源都可以访问 current_user 方法,它从OAuth令牌返回经过身份验证的用户。这使您能够:
- 检索用户特定数据
- 执行用户授权的操作
- 通过将操作范围限定到经过身份验证的用户来维护安全性
- 基于用户上下文构建个性化AI体验
出于安全原因,在暴露敏感数据或执行关键操作之前,请务必验证用户权限。
🛡️ 安全考虑
- 所有MCP端点都需要正确的OAuth身份验证
- 用户数据只能由授权的应用程序访问
- 用户可以随时撤销OAuth令牌
- 公共客户端支持PKCE扩展
- 条纹支付采用现代最佳实践进行安全处理
📚 进一步阅读
📝 许可证
该项目在MIT许可证下可用。
👥 贡献
欢迎投稿、问题和功能请求!
