关于 FxSocket
FxSocket MCP 通过 FxSocket 为 AI 助手提供 MetaTrader 4 和 5 账户的只读访问,可查看余额、持仓、交易历史和市场数据,不能下单、修改或平仓。
主要功能
- 01列出可访问的交易账户
- 02读取账户余额与状态
- 03查看持仓和挂单
- 04查看已平仓交易与表现
- 05查询报价和品种规格
- 06获取历史价格蜡烛图
适用场景
- 01检查账户余额与净值
- 02查看持仓和浮动盈亏
- 03按时间段分析已平仓交易
- 04查看报价与历史蜡烛图
MCP 相关
FxSocket 向 MCP 客户端提供账户和市场数据工具。客户端可通过带有 X-API-Key 请求头的远程 MCP 端点连接,也可运行本地 stdio 中继;所有访问均为只读。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.fxsocket.com/mcpclaude mcp add --transport http com-fxsocket https://mcp.fxsocket.com/mcp{"mcpServers":{"com-fxsocket":{"type":"http","url":"https://mcp.fxsocket.com/mcp"}}}在 Cursor 中打开{"servers":{"com-fxsocket":{"type":"http","url":"https://mcp.fxsocket.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-fxsocket":{"type":"http","url":"https://mcp.fxsocket.com/mcp"}}}{"mcpServers":{"com-fxsocket":{"serverUrl":"https://mcp.fxsocket.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.fxsocket.com/mcp需要授权工具
详细介绍
FxSocket MCP
让 Claude、Cursor、VS Code 和其他 MCP 客户端读取你在 FxSocket 上的 MetaTrader 4 和 5 账户:余额、未平仓头寸、已平仓交易(含胜率和盈亏)、报价、品种规格和价格历史。它仅支持只读。 无法下单、修改订单或平仓。
此镜像将 FxSocket 的 MCP 服务作为本地 stdio 服务运行,适用于自行启动服务的客户端(Claude Desktop、Docker 的 MCP Toolkit,或任何通过 command 配置的客户端)。它会使用你的 API 密钥,将每条消息转发到 https://mcp.fxsocket.com/mcp。这些工具运行在 FxSocket 上,与账户连接的交易终端位于同一处,因此镜像体积小巧,且工具发生变化时无需更新。
如果你的客户端支持填写远程服务 URL 和请求头,就可以跳过此镜像:将其指向 https://mcp.fxsocket.com/mcp,并在 X-API-Key 请求头中填写你的密钥。
1. 获取 API 密钥
在 app.fxsocket.com/dashboard/api-key 创建一个只读密钥(fxs_ro_...)。创建一个仅限部分账户使用的命名密钥,可将 Agent 的访问范围精确限制在这些账户。完整的 fxs_live_... 密钥也能使用,但 Agent 并不需要它。
2. 添加到客户端
Claude Desktop(进入 Settings、Developer、Edit Config,然后重启):
{
"mcpServers": {
"fxsocket": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "FXSOCKET_API_KEY", "fxsocket/mcp"],
"env": { "FXSOCKET_API_KEY": "fxs_ro_..." }
}
}
}
Claude Code:
claude mcp add fxsocket -e FXSOCKET_API_KEY=fxs_ro_... -- docker run -i --rm -e FXSOCKET_API_KEY fxsocket/mcp
Cursor(~/.cursor/mcp.json):
{
"mcpServers": {
"fxsocket": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "FXSOCKET_API_KEY", "fxsocket/mcp"],
"env": { "FXSOCKET_API_KEY": "fxs_ro_..." }
}
}
}
VS Code(.vscode/mcp.json,会提示输入一次密钥):
{
"inputs": [
{ "type": "promptString", "id": "fxsocket-key", "description": "FxSocket API key", "password": true }
],
"servers": {
"fxsocket": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "FXSOCKET_API_KEY", "fxsocket/mcp"],
"env": { "FXSOCKET_API_KEY": "${input:fxsocket-key}" }
}
}
}
-e FXSOCKET_API_KEY 不带值时,会从客户端的 env 传递该变量,因此密钥不会出现在进程列表中。
不使用 Docker: 此转发程序是一个无需依赖的单文件程序。下载 fxsocket_mcp.py,并将 python3(3.10 或更高版本)设为命令,将该文件的路径作为参数,同时保留相同的 env。
工具
| 工具 | 可查询的信息 |
|---|---|
list_accounts | 密钥可访问的所有账户,可选择附带每种货币的余额、净值和总额。请先调用。 |
get_account | 单个账户的完整信息:摘要、经纪商信息和交易终端状态。 |
get_open_positions | 所有账户的未平仓头寸和挂单,含浮动盈亏和隔夜利息。 |
get_trade_history | 指定时段内的已平仓交易,含盈利次数、亏损次数、胜率、净盈亏和按品种分类的明细。 |
search_symbols | 查找经纪商使用的准确品种名称(EURUSD、EURUSD.sd、EURUSDm...)。 |
get_quotes | 最多 20 个品种的实时买价/卖价和点差。 |
get_symbol_info | 合约规格:小数位数、合约大小、交易量限制、隔夜利息、交易时段。 |
get_price_history | 某个品种和时间周期的 OHLC 蜡烛图数据。 |
金额以各账户的存款货币计,不会跨货币求和。时间均为经纪商服务器时间。
配置
| 变量 | 默认值 | |
|---|---|---|
FXSOCKET_API_KEY | (必需) | 你的 FxSocket API 密钥。 |
FXSOCKET_MCP_URL | https://mcp.fxsocket.com/mcp | 要转发到的服务。仅允许使用指向 localhost 的普通 http。 |
FXSOCKET_MCP_TIMEOUT | 120 | 等待单次回复的秒数。 |
FXSOCKET_MCP_LOG | info | error、warning、info 或 debug。日志输出到 stderr。 |
FxSocket 对每位用户每分钟最多允许 60 次 MCP 请求。
工作原理
客户端会将以换行符分隔的 JSON-RPC 写入容器的标准输入。中继会通过保持活动状态的 HTTPS 连接,将每条消息 POST 到 MCP 端点,添加 API 密钥和协议要求的标头,并将回复写入标准输出。它支持两个协议时期:
- **2026-07-28:**协议版本会随每个请求的
_meta一起传递,中继会将其映射到MCP-Protocol-Version、Mcp-Method和Mcp-Name标头(以及任何x-mcp-header工具参数)。 - **2025-03-26 到 2025-11-25:**客户端会通过
initialize握手,中继从那时起会将协商后的版本作为MCP-Protocol-Version发送。
如果 FxSocket 拒绝密钥,中继仍会根据服务的公开卡片
(https://mcp.fxsocket.com/.well-known/mcp/server-card.json)响应 initialize 和 tools/list,因此使用占位密钥启动它的目录和检查器仍能看到这些工具。每次工具调用仍需要有效密钥,否则会返回拒绝响应。
请求会并发运行。客户端发来的 notifications/cancelled 会关闭该请求的连接,这也是 Streamable HTTP 的取消方式。HTTP 故障(密钥无效、触发速率限制或网络问题)会以 JSON-RPC 错误返回,并说明需要修复的问题,而不会让客户端一直等待。
开发
python3 -m unittest discover -s tests
docker build -t fxsocket/mcp:dev .
测试会将中继作为子进程,连接到本地桩服务器运行,因此会覆盖真实的标准输入输出和 HTTP 路径。
要发布版本,请在 fxsocket_mcp.py 中更新 __version__,然后推送匹配的标签(git tag v1.0.1 && git push --tags)。publish 工作流会构建 linux/amd64 和 linux/arm64,并推送 fxsocket/mcp:<version>、:<major>.<minor> 和 :latest;dockerhub-overview 工作流会将此 README 复制到 Docker Hub 页面。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。