股票分析仪MCP服务器
一个强大的模型上下文协议(MCP)服务器,用于全面的股票分析和估值。该服务器为财务分析提供计算工具,大型语言模型(LLM)可以使用这些工具进行专业级的投资研究。
特性
🎯 核心能力
- 实时财务数据:获取全面的公司财务、损益表、资产负债表、现金流和关键指标
- DCF估值:具有敏感性分析的高级贴现现金流计算器
- 灵活的数据周期:支持季度和年度财务数据
- 智能缓存:具有特定数据类型TTL的智能缓存系统
- 速率限制:遵守API配额的内置速率限制
- 多个数据源:支持财务建模准备(FMP)API的适配器模式,可扩展到其他提供商
📊 可用工具
1. fetch_company_data
获取任何上市公司的全面财务数据。
参数:
ticker(必填):股票代码(例如“AAPL”、“GOOGL”)dataTypes:要获取的数据类型数组
- profile:公司概况和业务描述 - quote:实时股票价格和市场数据 - income_statement:收入、支出和盈利能力指标 - balance_sheet:资产、负债和权益 - cash_flow:经营、投资和融资现金流 - ratios:财务比率(市盈率、净资产收益率、债务比率等) - key_metrics:关键绩效指标
period:“季度”(默认)或“年度”limit:要获取的时段数(1-20,默认值:5)
2. calculate_dcf
通过敏感性分析进行贴现现金流估值。
参数:
projectedFreeCashFlows:每年预计的FCF数组terminalGrowthRate:长期增长率(例如,2.5%为0.025)discountRate:加权平均资本成本/贴现率(例如,10%为0.10)netDebt:总债务减去现金sharesOutstanding:稀释流通股- 用于附加分析的可选上下文字段
退货:
- 每股公允价值
- 企业价值和股权价值
- 现值计算
- 5x5灵敏度分析矩阵
- 所有计算的详细明细
3. test_api_connection
测试FMP API连接并验证API密钥。
安装
先决条件
- Node.js 18+
- npm或纱线
- 财务建模准备API密钥(在 金融建模网站)
设置
- 克隆存储库:
git clone https://github.com/yourusername/stock-analyzr-mcp.git
cd stock-analyzr-mcp- 安装依赖项:
npm install- 设置环境变量:
# Create .env file
echo "FMP_API_KEY=your_api_key_here" > .env- 构建项目:
npm run build- 运行测试以验证设置:
npm test用法
使用克劳德桌面
- 添加到您的Claude Desktop配置(
~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"stock-analyzr": {
"command": "node",
"args": ["/path/to/stock-analyzr-mcp/dist/server.js"],
"env": {
"FMP_API_KEY": "your_api_key_here"
}
}
}
}- 重新启动克劳德桌面
- 这些工具将在您的对话中提供。示例提示:
- “使用最新季度数据分析苹果的财务状况” - “使用保守的增长假设计算微软的DCF估值” - “比较特斯拉与传统汽车制造商的财务比率”
独立MCP服务器
# Start the server
npm start
# The server runs on stdio and can be connected to any MCP client发展
项目结构
stock-analyzr-mcp/
├── src/
│ ├── server.ts # Main MCP server
│ ├── tools/
│ │ ├── company-data-fetcher.ts # Financial data retrieval
│ │ └── dcf-calculator.ts # DCF valuation engine
│ ├── adapters/
│ │ └── fmp-adapter.ts # Financial Modeling Prep API
│ ├── models/ # TypeScript interfaces
│ ├── utils/
│ │ ├── cache.ts # Caching system
│ │ └── rate-limiter.ts # API rate limiting
│ └── prompts/
│ └── system-instructions.ts # LLM guidance frameworks
├── tests/ # Comprehensive test suite
├── docs/ # Additional documentation
└── config/ # Configuration files可用脚本
npm run dev # Start development server with hot reload
npm run build # Compile TypeScript to JavaScript
npm run test # Run all tests
npm run test:unit # Run unit tests only
npm run test:integration # Run integration tests
npm run lint # Run ESLint
npm run lint:fix # Auto-fix linting issues
npm run format # Format code with Prettier测试
该项目包括全面的测试覆盖范围:
- 所有计算器和实用程序的单元测试
- API适配器集成测试
- MCP服务器功能的端到端测试
运行覆盖率测试:
npm run test:coverage建筑
设计原则
- 关注点分离:计算工具处理数学,LLM处理解释
- 纯函数:所有计算器都是确定性的,没有副作用
- 类型安全:具有严格类型的完整TypeScript
- 差错恢复:全面的错误处理和验证
- 演出:智能缓存和速率限制,实现API的最佳使用
数据流
LLM Request → MCP Server → Tool Selection → Data Fetcher/Calculator
↓ ↓
Rate Limiter FMP Adapter
↓ ↓
Cache Layer External API
↓ ↓
Response ← ← ← ← ← ← ← ← ← Processed Data缓存策略
- 报价数据:1分钟TTL(实时定价)
- 财务报表:1小时TTL(每季度更新一次)
- 公司简介:24小时TTL(很少更改)
- 缓存密钥:包括收报机、数据类型和用于粒度控制的周期
API文档
财务数据类型
公司简介
{
symbol: string;
companyName: string;
industry: string;
sector: string;
description: string;
marketCap: number;
// ... additional fields
}利润表
{
date: string;
period: string;
revenue: number;
netIncome: number;
eps: number;
// ... additional fields
}DCF结果
{
sharePrice: number;
enterpriseValue: number;
equityValue: number;
presentValueOfCashFlows: number[];
terminalValue: number;
sensitivityAnalysis: {
discountRateRange: number[];
terminalGrowthRange: number[];
valuationMatrix: number[][];
}
}配置
环境变量
FMP_API_KEY(必需):您的财务建模准备API密钥CACHE_TTL(可选):默认缓存TTL(秒)RATE_LIMIT(可选):每分钟API调用数限制LOG_LEVEL(可选):记录详细信息(调试/信息/警告/错误)
高级配置
创建一个 config/custom.json 对于高级设置:
{
"cache": {
"maxKeys": 1000,
"checkPeriod": 60
},
"rateLimiter": {
"maxTokens": 100,
"refillRate": 10
}
}故障排除
常见问题
- API密钥无效
- 验证FMP_API_KEY是否正确 - 检查FMP仪表板上的API密钥权限 - 使用 test_api_connection 验证工具
- 速率限制
- 免费套餐的默认通话限制为250次/分钟 - 升级FMP订阅以获得更高的限额 - 必要时调整速率限制器设置
- 缓存问题
- 使用清除缓存 npm run clear-cache - 检查配置中的缓存大小限制 - 验证缓存目录的文件系统权限
贡献
欢迎投稿!请按照以下步骤操作:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
开发指南
- 为所有新功能编写测试
- 保持TypeScript严格模式合规性
- 遵循现有的代码风格(由ESLint强制执行)
- 更新API变更文档
- 为公共方法添加JSDoc注释
路线图
第3阶段:扩展功能(进行中)
- \[\]多源数据集成(雅虎财经、阿尔法Vantage)
- \[\]支持Redis的高级缓存
- \[\]实时数据的WebSocket支持
- \[\]投资组合分析工具
第四阶段:生产特性(计划中)
- \[\]Docker容器化
- \[\]Kubernetes部署清单
- \[\]监控和警报(普罗米修斯/Grafana)
- \[\]高级错误恢复和断路器
未来的增强功能
- \[\]技术分析指标
- \[\]期权定价模型
- \[\]盈利预测分析
- \[\]行业比较工具
- \[\]自定义财务指标生成器
许可证
MIT许可证-请参阅 许可证 详细信息文件
致谢
- 内置于 Anthropic的MCP SDK
- 财务数据由 财务建模准备
- 基于学术金融原理的DCF方法
支持
对于问题、疑问或建议:
- 在GitHub上打开一个问题
- 检查 文档 获取详细指南
- 审查已解决的问题,找出常见问题
安全
- 永远不要将API密钥提交到版本控制
- 使用环境变量进行敏感配置
- 定期旋转API键
- 监控API使用情况以发现异常
______________________________________________________________________
备注:这是一个积极的发展项目。功能和API可能会发生变化。请务必参阅最新文档和更改日志以获取更新。
