带MCP的ChatGPT应用程序-股票热门
一个最小的TypeScript ChatGPT应用程序,使用模型上下文协议(MCP)SDK显示Alpha Vantage的最大赢家和输家。
特性
- 🔧 MCP服务器 -暴露a
topmovers获取股市动态的工具 - 📊 交互式小部件 -为涨幅最大、跌幅最大和最活跃的股票提供响应表
- 🚀 快速后端 -用于MCP集成的简单HTTP服务器
- 🔐 阿尔法Vantage集成 -实时股市数据
- 🌐 ngrok准备就绪 -通过HTTPS隧道实现轻松的本地开发
先决条件
- Node.js 18+和npm
- Alpha Vantage API密钥 (免费)
- 吸烟 用于本地HTTPS隧道
快速开始
1.克隆和安装
git clone https://github.com/mulder3010/chatgpt-app-mcp.git
cd chatgpt-app-mcp
npm install2.配置环境
cp .env.example .env
# Edit .env and add your Alpha Vantage API key3.建设项目
npm run build4.运行服务器
npm startMCP服务器将启动 http://localhost:3000
5.使用ngrok进行暴露(用于ChatGPT集成)
在单独的终端中:
ngrok http 3000复制HTTPS URL(例如。, https://abc123.ngrok.app)
发展
对于开发过程中的热重新加载:
npm run dev项目结构
chatgpt-app-mcp/
├── src/
│ ├── server.ts # Main MCP server & Express app
│ └── types.ts # TypeScript type definitions
├── web/
│ ├── src/
│ │ └── widget.tsx # React widget component
│ └── dist/ # Compiled widget assets
├── build-widget.js # Widget build script
├── package.json
├── tsconfig.json
└── README.md运作原理
- MCP服务器:实现模型上下文协议,注册:
- A. topmovers 称为Alpha Vantage的工具 TOP_GAINERS_LOSERS 端点 - 呈现小部件UI的HTML资源模板
- 小部件:负载中,呼叫
window.openai.callTool("topmovers", {limit})以获取数据并呈现三个响应表:
- 顶级赢家 - 顶级失败者 - 最活跃
- 快递服务器:为MCP端点提供服务
/mcp通过HTTP/SSE传输
与ChatGPT一起使用
- 在ChatGPT中启用开发人员模式(设置→ 开发者→ 启用开发人员模式)
- 创建新连接器:
- 类型:MCP - 网址: https://your-ngrok-url.ngrok.app/mcp
- 测试连接
- 试着问:“给我看看今天股票走势最好的股票”
api参考
工具: topmovers
参数:
limit(可选,数字):每个类别显示的库存数量(默认值:10)
退货:
{
top_gainers: Array;
top_losers: Array;
most_actively_traded: Array;
}环境变量
| 变量 | 描述 | 必填 |
|---|---|---|
ALPHA_VANTAGE_API_KEY | 您的Alpha Vantage API密钥 | 是 |
PORT | 服务器端口(默认值:3000) | 否 |
故障排除
API费率限制:Alpha Vantage免费套餐有费率限制(5次通话/分钟,100次通话/天)。对于生产用途,考虑升级。
CORS问题:小部件在具有严格CSP的iframe中运行。网络请求必须指向中指定的允许域 openai/widgetCSP.
ngrok会议:免费ngrok网址将在2小时后过期。重新启动ngrok并更新您的ChatGPT连接器URL。
许可证
麻省理工学院
