PayMCP订阅演示
示例MCP服务器,使用 PayMCP Stripe作为计费提供商,OAuth/OIDC用于身份验证。
- 使用承载令牌保护MCP工具免受Auth0、通用OIDC或Keycloak的攻击
- 强制使用付费工具(演示
add工具)通过Stripe订阅 - 在MCP客户端的根目录中公开OAuth发现元数据
快速启动
- 复制
.env.example到.env并填写您的auth+Tripe值。 - 安装deps:
yarn install. - 运行服务器:
yarn dev(默认值:http://localhost:3000). - 连接MCP客户端,进行身份验证,然后调用
add工具--访问需要活动的Stripe订阅匹配STRIPE_SUBSCRIPTION_ID.
环境
HOST/PORT:MCP服务器主机/端口(默认值:localhost:3000).OIDC_ISSUER:Auth0/通用OIDC的颁发者URL(如果使用Keycloak样式配置,请留空)。AUTH_HOST,AUTH_PORT,AUTH_REALM:钥匙斗篷位置(如果不使用)OIDC_ISSUER.OAUTH_CLIENT_ID,OAUTH_CLIENT_SECRET:OAuth客户端凭据。STRIPE_SECRET_KEY:PayMCP的条纹密钥。STRIPE_SUBSCRIPTION_ID:代表所需计划的条纹价格ID。
身份验证提供程序设置
Auth0
- 在Auth0仪表板中:应用程序→ APIs → 创建API.Set
Identifier到您的MCP服务器主机名(例如。,http://localhost:3000/). - 创建客户端应用程序并复制
domain,client ID,client secret进入.env(OIDC_ISSUER,OAUTH_CLIENT_ID,OAUTH_CLIENT_SECRET). - 认证→ 数据库:创建 用户名密码验证 连接。
- 用户名密码验证 连接→ 将该连接提升到域级别。
- 设置→ 高级设置:启用 动态客户端注册(DCR) 和 资源参数兼容性配置文件.
Keycloak
使用官方MCP授权演练:https://modelcontextprotocol.io/docs/tutorials/security/authorization.然后设置 AUTH_HOST, AUTH_PORT, AUTH_REALM, OAUTH_CLIENT_ID,以及 OAUTH_CLIENT_SECRET 在 .env (离开 OIDC_ISSUER 空)。
条纹设置
- 在Stripe仪表板中创建产品和经常性价格。
- 集
STRIPE_SUBSCRIPTION_ID该价格ID。 - 集
STRIPE_SECRET_KEY您的Stripe密钥。\
PayMCP将使用这些来检查订阅状态,并生成向MCP客户端公开的结账/管理链接。
跑步
- 开发服务器:
yarn dev - 构建:
yarn build - 启动内置服务器:
yarn start
MCP服务器通过HTTP运行,具有OAuth保护的端点(/ 用于会话请求)。OAuth元数据通过以下方式自动为客户端发布 mcpAuthMetadataRouter.
访问控制是如何工作的
- OAuth承载令牌会根据您的提供商进行验证,并且必须针对MCP资源(
HOST:PORT). - 演示
add工具通过以下方式声明订阅要求_meta.subscription.plan = STRIPE_SUBSCRIPTION_ID;PayMCP强制执行。 - PayMCP增加了三种帮助方法,让用户获得结账链接,并在聊天中直接管理他们的订阅。
故障排除
- 401或受众错误:确保API
Identifier(Auth0)或资源指示符匹配http://HOST:PORT. - JWT形状无效:请确认您的提供商发布了JWT访问令牌(不是不透明令牌)。
- 条纹错误:仔细检查
STRIPE_SECRET_KEY而那个STRIPE_SUBSCRIPTION_ID存在并处于活动状态。
