@wsvc/prrm-mcp
一个独立的MCP(模型上下文协议)服务器,代理对PRRM(投资组合研究和风险管理)REST API的工具调用。它不需要数据库连接,也不需要PRRM代码库依赖关系——只需要两个环境变量和一个正在运行的PRRM服务器。
建筑
复制 +--------------+ stdio +------------------+ HTTPS +--------------+
| Claude Code | ------------ | prrm-mcp-client | ---------- | PRRM VPS |
| / OpenClaw | | (this package) | | /api/v1/* |
+--------------+ +------------------+ +--------------+
MCP服务器通过stdio与AI代理通信,并通过HTTP(S)将每个工具调用转发到PRRM REST API。所有响应都从标准中展开 { data: ... } 信封,并作为JSON文本内容返回。
快速开始
选项A:从npm安装(如果已发布)
复制 # Run directly with npx (no install required)
PRRM_BASE_URL=https://prrm.example.com PRRM_API_TOKEN=your-token npx @wsvc/prrm-mcp
# Or install globally
npm install -g @wsvc/prrm-mcp
PRRM_BASE_URL=https://prrm.example.com PRRM_API_TOKEN=your-token prrm-mcp
选项B:从GitHub安装
如果包没有发布到npm,你可以直接从GitHub仓库安装:
复制 # Install globally from GitHub (uses the packages/mcp-client directory)
npm install -g github:wsvc/Vibe-PRRM-MCP
# Or add to a project
npm install github:wsvc/Vibe-PRRM-MCP
您还可以在本地克隆和构建:
复制 git clone https://github.com/wsvc/Vibe-PRRM-MCP.git
cd Vibe-PRRM-MCP/packages/mcp-client
npm install
npm run build
npm link # makes 'prrm-mcp' available globally on your machine
# Then run it anywhere
PRRM_BASE_URL=https://prrm.example.com PRRM_API_TOKEN=your-token prrm-mcp
使用Claude代码进行配置
将以下内容添加到您的 claude_desktop_config.json 或 .claude.json.
从npm安装时:
复制 {
"mcpServers": {
"prrm": {
"command": "npx",
"args": ["@wsvc/prrm-mcp"],
"env": {
"PRRM_BASE_URL": "https://prrm.example.com",
"PRRM_API_TOKEN": "your-agent-token"
}
}
}
}
从本地克隆安装时(调整克隆位置的路径):
复制 {
"mcpServers": {
"prrm": {
"command": "node",
"args": ["C:/path/to/Vibe-PRRM-MCP/packages/mcp-client/dist/index.js"],
"env": {
"PRRM_BASE_URL": "https://prrm.example.com",
"PRRM_API_TOKEN": "your-agent-token"
}
}
}
}
使用OpenClaw进行配置
将以下内容添加到您的 openclaw.json:
复制 {
"mcpServers": {
"prrm": {
"command": "npx",
"args": ["@wsvc/prrm-mcp"],
"env": {
"PRRM_BASE_URL": "https://prrm.example.com",
"PRRM_API_TOKEN": "${DOLLAR_BILL_PRRM_TOKEN}"
}
}
}
}
环境变量
变量
必填
描述
PRRM_BASE_URL
是
PRRM服务器的基本URL(例如。 https://prrm.example.com 或 http://IP:3000)
PRRM_API_TOKEN
是
API身份验证的承载令牌,在PRRM设置中创建
PRRM_MCP_DEBUG
否
设置为 true 将所有带有时间戳的API调用记录到stderr
工具目录
该服务器在12个模块中公开了136个工具。每个工具都将1:1(对于合并的列表/获取工具为1:多)映射到PRRM REST API端点。
战略(3个工具)
工具
说明
get_strategy
获取当前投资策略,或设置versionId时的历史版本。警告:历史版本缺少updatedAt字段。
get_strategy_versions
列出投资策略文件的所有版本
update_strategy
用新内容更新投资战略文件
仪器(8个工具)
工具
说明
search_prrm_instruments
按名称、资产类别、状态或部门搜索PRRM工具
get_instrument
通过ID获取特定仪器的详细信息
create_instrument
在系统中创建新仪器
update_instrument
更新现有仪器上的字段
add_external_id
向仪器添加外部标识符
remove_external_id
从仪器中删除外部标识符
search_borsdata_instruments
在Borsdata搜索要导入的仪器
search_yahoo_instruments
在雅虎财经搜索要导入的工具
评论(2个工具)
工具
说明
get_comments
获取仪器或研究报告的评论
add_comment
在工具或研究报告中添加评论
筛选与宇宙(32个工具)
工具
说明
list_screening_profiles
列出筛选配置文件,或在设置id时获取一个
create_screening_profile
使用标准和阈值创建新的筛选配置文件
update_screening_profile
更新现有的筛查档案
delete_screening_profile
删除筛选配置文件
run_screen
执行筛选配置文件以查找匹配的仪器
evaluate_instrument_against_profile
根据配置文件的标准评估单个仪器
get_screen_results
从已完成的筛查中获取结果
create_instruments_from_screening
根据筛选运行结果创建仪器
get_available_kpis
获取筛选标准的可用KPI
get_screening_classifications
获取可用的筛查分类
get_universe
获取当前宇宙(无参数)或过滤后的宇宙(有参数)
update_universe_entry
标记或关闭宇宙中的某个仪器
list_intersection_configs
列出交叉点配置,或在设置id时获取一个
create_intersection_config
创建结合多个配置文件的交叉口配置
update_intersection_config
更新交叉口配置
delete_intersection_config
存档交叉口配置
run_intersection
运行屏蔽交叉管道
list_intersection_runs
列出配置的运行(使用configId),或获取单个运行(使用runId)
get_intersection_diff
比较两个交叉路口的运行情况,看看有什么变化
list_universe_versions
列出宇宙版本,或在设置id时获取一个版本。警告:list返回包装好的{data:[…]},single返回裸对象。
get_universe_diff
比较两个宇宙版本,看看有什么变化
get_universe_staleness
检查当前宇宙有多陈旧
get_position_alerts
获取宇宙的位置级别警报
get_universe_overrides
获取宇宙中的主动手动覆盖
create_universe_override
将手动超控仪器直接添加到宇宙中
bulk_create_instruments
从宇宙版本批量创建乐器
propose_universe
从交叉口管路创建宇宙方案
get_proposal
通过ID获取宇宙提案
update_proposal_instrument
切换宇宙提案中的仪器包含
add_override_to_proposal
在提案中添加手动超控仪表
remove_override_from_proposal
从提案中删除手动覆盖
commit_universe
提交宇宙提案,取代活跃的宇宙
研究(4种工具)
工具
说明
list_research_reports
列出研究报告,或在设置id后获取一份
create_research_report
创建新的研究报告(仪器ID在创建后是可变的)
update_research_report
更新现有研究报告
search_research_semantic
跨研究报告的语义搜索
估值(15种工具)
工具
说明
list_valuation_models
列出模型,或在设置id时获取一个模型
create_valuation_model
创建新的估值模型模板
update_valuation_model
更新现有估值模型
list_valuations_by_instrument
列出工具的估值输出(带instrument_id),或获取一个(带id)
autofill_valuation
自动填充来自Borsdata的估值输入。返回{inputs,sources}——将autofill.inputs(不是包装器)传递给create_scenario
list_scenarios
列出仪器的场景(带instrumentId),或获取一个(带id)
create_scenario
创建新的估值场景(需要输入数据和作者)
update_scenario
更新现有的估值方案
delete_scenario
删除估价方案
copy_scenario
创建现有场景的副本
execute_scenario
执行估值方案以产生输出
get_scenario_history
获取场景的版本历史记录
what_if_valuation
对场景进行一次性假设分析
compare_scenarios
并排比较多个场景
export_scenarios_to_ic
将场景导出到IC会议议程
投资委员会(16种工具)
工具
说明
create_ic_meeting
召开新的投资委员会会议
update_ic_meeting
更新IC会议(状态和/或日期)
list_ic_meetings
列出IC会议,或在设置id时获取一个会议
add_agenda_item
向会议添加议程项目
update_agenda_item
更新现有议程项目
remove_agenda_item
删除议程项目
reorder_agenda_items
设置议程项目的显示顺序
list_prereads
列出议程项目的预读内容,或在设置prereadId时获取预读内容
post_preread
在议程项目后附上一份预读文件
update_preread
更新现有的预读
delete_preread
删除预读内容
post_minutes
发布IC会议纪要
update_minutes
更新现有分钟数
record_decision
记录IC决策
update_decision_status
更新决策状态(待定/已执行/已取消)
list_decisions
使用可选过滤器列出IC决策
投资组合(30种工具)
工具
说明
register_trade
在投资组合中注册新交易
get_positions
获取所有当前投资组合头寸
get_position
获取特定仪器的位置详细信息
update_position_price
更新投资组合头寸的价格
assign_position_sleeve
为子投资组合套筒分配一个位置
get_trade_history
获取交易历史记录,可选择按工具过滤
get_portfolio_summary
获取包括资产净值、回报和关键指标在内的高级投资组合摘要
get_allocation
获取投资组合分配明细
get_fx_exposure
获取投资组合外汇敞口明细
update_trade
更新现有交易
delete_trade
从投资组合中删除交易
get_cash_balances
获取不同货币的现金余额
record_deposit
记录现金存款
record_withdrawal
记录现金提款
get_cash_transactions
使用可选过滤器列出现金交易
update_cash_transaction
更新现金交易
delete_cash_transaction
删除现金交易
get_portfolio_config
获取投资组合配置
update_portfolio_config
更新投资组合配置
get_dividends
使用可选过滤器列出股息
record_dividend
记录股息支付
sync_dividends
同步Borsdata的股息
import_portfolio
导入投资组合数据
import_transactions
从外部来源导入交易
get_margin_summary
获取利润利用率摘要
get_realised_pnl
从已平仓头寸中实现损益
list_sub_portfolios
列出子投资组合(无参数),获取一个(带id),或获取摘要(带summary:true)
create_sub_portfolio
创建新的子投资组合
update_sub_portfolio
更新子投资组合
delete_sub_portfolio
删除子投资组合
性能(8个工具)
工具
说明
get_performance_summary
获取给定时期的投资组合绩效摘要
get_return_series
获取投资组合和基准回报时间序列
get_performance_attribution
按职位、行业或货币获取绩效归因
get_drawdown_analysis
获取投资组合缩减分析
get_benchmark_config
获取当前基准配置
set_benchmark
设定绩效比较的基准工具
list_performance_reports
列出性能报告,或在设置id时获取一个
create_performance_report
创建新的绩效报告
风险(13种工具)
工具
说明
publish_risk_report
发布新的风险报告
list_risk_reports
列出风险报告,或在设置id时获取一个
get_risk_dashboard
获取包含关键指标和警报的当前风险仪表板
get_alert_config
获取当前风险警报触发器配置
create_risk_alert_trigger
创建新的风险警报触发器
update_risk_alert_trigger
更新现有风险警报触发器
delete_risk_alert_trigger
删除风险警报触发器
list_risk_alert_events
列出风险警报事件
acknowledge_risk_alert_event
确认风险警报事件
get_risk_analytics
获取投资组合风险指标(VaR、CVaR、波动率)
get_risk_contributions
获得每个头寸的风险贡献
get_correlation_matrix
获取位置相关矩阵
run_prrm_stress_test
对PRRM组合运行压力测试场景(从Run_stress_test重命名以避免与组合优化器冲突)
通知(4个工具)
工具
说明
get_notifications
使用可选筛选器获取通知
get_unread_notification_count
获取未读通知的计数
mark_notification_read
将特定通知标记为已读
mark_all_notifications_read
将所有通知标记为已读
平台(1个工具)
工具
说明
global_search
搜索所有PRRM实体(仪器、研究、会议等)
MCP资源
服务器公开一个MCP资源:
URI
描述
prrm://guide
一个嵌入式集成指南,涵盖了常见的工作流程,如研究仪器、准备IC会议、监控风险和运行屏幕。
错误处理
服务器从不从工具处理程序抛出异常。HTTP错误被转换为文本内容,以便代理可以读取错误并做出适当的反应。
HTTP状态
行为
200、201
返回 data 响应信封中的字段
400422
返回验证错误消息作为工具结果
401
返回“身份验证失败--检查PRRM_API_TOKEN”
404
返回“未找到”消息
500503
从服务器返回错误消息
发展
先决条件
Node.js 18+(使用内置 fetch)
正在运行的PRRM服务器实例
项目结构
复制 packages/mcp-client/
package.json
tsconfig.json
src/
index.ts # Entry point, MCP server setup, guide resource
api-client.ts # HTTP client wrapper (fetch + auth + error handling)
tools/
strategy.ts # 3 tools
instruments.ts # 8 tools
comments.ts # 2 tools
screening.ts # 32 tools
research.ts # 4 tools
valuation.ts # 15 tools
ic.ts # 16 tools
portfolio.ts # 30 tools
performance.ts # 8 tools
risk.ts # 13 tools
notifications.ts # 4 tools
platform.ts # 1 tool
构建
复制 cd packages/mcp-client
npm install
npm run build # Compiles TypeScript to dist/
以开发模式运行
复制 cd packages/mcp-client
PRRM_BASE_URL=http://localhost:3000 PRRM_API_TOKEN=test npm run dev
这使用 tsx 无需构建步骤即可动态执行TypeScript。
运行构建版本
复制 cd packages/mcp-client
PRRM_BASE_URL=http://localhost:3000 PRRM_API_TOKEN=test npm start
出版
复制 cd packages/mcp-client
npm run build
npm publish --access public
该包发布为 @wsvc/prrm-mcp 并且可以与一起运行 npx @wsvc/prrm-mcp 或全球安装。
许可证
有关许可证信息,请参阅存储库根目录。