图像生成器MCP服务器(paymcp演示)
最低限度 模型上下文协议(MCP) 公开单个工具的服务器, generate,它从文本提示中创建图像并将其作为base64编码的PNG返回 MCP资源。服务器演示如何制作 已支付 MCP工具使用 paymcp 条纹或钱包。
______________________________________________________________________
此repo显示了什么
- 如何接线
paymcp进入MCP服务器并为工具设定价格。 - 一个可以扩展的付费单用途MCP工具的最小形状。
- 如何为MCP服务器提供服务 流式HTTP 使用Express(POST/GET/DELETE到
/mcp).
______________________________________________________________________
需求
- Node.js 18+
- OpenAI API密钥:set
OPENAI_API_KEY - 条纹密钥(可选):set
STRIPE_SECRET_KEY如果你想启用Stripe支付(测试密钥适合开发) - 钱包API密钥(可选):set
WALLEOT_API_KEY如果你想尝试Walloot而不是Stripe,可以在代码中取消对提供者的注释
______________________________________________________________________
安装
# clone the repo
pnpm install这个项目是TypeScript。使用你喜欢的跑步者(例如。,tsx,ts-node)如果您创建了自定义入口点,则在引导服务器进程时。
______________________________________________________________________
配置
设置环境变量(例如通过 .env 你的跑步者加载,或通过你的外壳):
export OPENAI_API_KEY="sk-..."
# Optional, if using Stripe
export STRIPE_SECRET_KEY="sk_test_..."
# Optional, if using Walleot (then uncomment provider in the server code)
export WALLEOT_API_KEY="..."支付提供商已在中配置 installPayMCP 在服务器代码中:
installPayMCP(server, {
providers: {
// "walleot": { apiKey: process.env.WALLEOT_API_KEY ?? "" }, // Uncomment to enable Walleot
"stripe": { apiKey: process.env.STRIPE_SECRET_KEY ?? "" },
},
mode: mode.ELICITATION,
});付款通知: Stripe每笔交易都有最低收费。如果你的工具价格低于 $2.00,更喜欢 沃洛特小额Stripe支付可能会失败或不经济。
运作原理
- 服务器注册一个工具
generate:
- 输入: { prompt: string } - 价格: $2.00 每次调用(在代码中配置;根据需要更改) - 输出:MCP资源类型 image 使用base64编码的PNG数据
- 内部调用
generateImage(prompt)从src/services/openai.ts,它使用官方的OpenAI SDK,请求一个图像,并返回一个 base64 弦。
该工具返回如下响应:
{
"content": [
{
"type": "image",
"data": "",
"mimeType": "image/png",
"annotations": {
"audience": ["user"],
"priority": 0.9
}
}
]
}______________________________________________________________________
运行服务器(HTTP/Streamable HTTP)
此服务器已连接到使用Express通过HTTP运行 流式HTTP服务器传输.
使用包脚本
# dev with tsx watch
pnpm dev
# build TypeScript -> build/
pnpm build
# start compiled server from build/
pnpm start默认情况下,它会监听 PORT (默认为 5004):
http://localhost:5004/mcp______________________________________________________________________
- MCP检查员:
1. 启动此服务器(pnpm dev)所以它一直在听 http://localhost:5004/mcp. 1. 在新终端中,运行:
npx @modelcontextprotocol/inspector@latest1. 打开Inspector打印的URL(例如。, http://localhost:5173). 1. 点击 添加服务器 → 选择 流式HTTP → 将URL设置为 http://localhost:5004/mcp → 连接. 1. 在工具列表中,选择 生成,提供a prompt,并运行它以接收base64 PNG。
- 演示客户端:在此处尝试配套聊天客户端:https://github.com/Walleot/walleot-demo-chat
______________________________________________________________________
定制
- 变更价格:in
server.registerTool更新price: { amount: 2, currency: "USD" }。如果您使用 条纹,将价格设置为高于Stripe的最低价格;对于价格 低于2.00美元,更喜欢 沃洛特. - 更改输出:调整
src/services/openai.ts如果你想要URL而不是base64、更大的大小、不同的格式等。当前函数有意保持最小值,并始终返回base64 PNG字符串。 - 掉期支付提供商:通过切换提供者块和密钥从Stripe切换到Walloot。
______________________________________________________________________
许可证
麻省理工学院
包管理器注意事项:此repo声明 packageManager: pnpm上述示例使用 pnpm。如果您更喜欢其他选项,请使用: npm run dev|build|start 或 yarn dev|build|start.
