使用说明
带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 install
2.配置环境
cp .env.example .env
# Edit .env and add your Alpha Vantage API key
3.建设项目
npm run build
4.运行服务器
npm start
MCP服务器将启动 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资源模板
- A.
-
小部件:负载中,呼叫
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<{
ticker: string;
price: string;
change_amount: string;
change_percentage: string;
volume: string;
}>;
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。
许可证
麻省理工学院