mcpField
T
Toolstem Mcp Server

Toolstem Mcp Server

本地服务
github.com/toolstem金融数据118 周前更新

关于 Toolstem Mcp Server

Toolstem 是面向 AI Agent 的金融数据 MCP 服务,将股票行情、公司基本面、估值和财务指标合并为扁平 JSON,并预先计算分析信号。适用于股票分析与公司比较,也可使用托管端点或自行运行服务。

主要功能

  1. 01获取股票概览与 DCF 估值
  2. 02汇总盈利、现金流和增长指标
  3. 03比较 2 至 5 家公司
  4. 04预计算估值、健康度与增长信号
  5. 05以扁平 JSON 返回综合数据

适用场景

  1. 01获取单只股票的行情和估值概览
  2. 02分析公司的财务状况与增长趋势
  3. 03并列比较多家公司的指标
  4. 04将财务数据接入 Agent 投研流程

MCP 相关

Toolstem MCP 服务向客户端提供三个复合工具:股票概览、公司指标和公司比较。托管端点通过 x402 按次收取 USDC;也可使用 FMP API 密钥自行运行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"toolstem": {
"command": "npx",
"args": [
"-y",
"toolstem-mcp-server"
],
"env": {
"FMP_API_KEY": "<FMP_API_KEY>"
}
}
}
}
启动命令npx -y toolstem-mcp-server
需要配置的环境变量
FMP_API_KEY密钥Financial Modeling Prep API key

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmtoolstem-mcp-server1.2.16

工具

3

收录的工具列表 · 更新于 2 周前

参数类型必填说明
symbolstring是股票代码(例如:AAPL、MSFT、TSLA)

详细介绍

📊 Toolstem — 面向 AI Agent 的金融数据 MCP | 股票分析与 DCF

npm 版本 npm 下载量 MCP Registry 许可证:MIT

专为 AI Agent 打造的精选金融数据 MCP——一次调用即可完成股票研究。

Toolstem 是一款金融数据 MCP,专为 AI 股票分析、股票研究和 Agent 驱动的投资工作流打造。实时股票数据、公司基本面、DCF 估值、财务指标,以及并排比较公司的能力——所有结果都以扁平、适合 Agent 使用的 JSON 返回,并已计算好衍生信号。

可原生搭配 Claude、OpenAI Agents SDK 和 LangChain 使用。按调用付费,无需订阅。更多金融领域的 MCP 服务(SEC 文件、内幕交易、机构持仓)即将推出。

不同于仅暴露供应商 REST API 的直通封装,每个 Toolstem 工具都会整合多个数据源、推导信号,并预先计算 Agent 否则必须自行处理的数学运算。

一次调用。一个适合 Agent 使用的 JSON 响应。无需解析嵌套数组,无需跨端点拼接数据,也无需编写空值检查样板代码。


快速开始 — 托管端点(推荐)

将 MCP 客户端或 Agent 指向托管端点。无需 API 密钥、基础设施或设置。 通过 x402 按调用计费——Agent 的钱包直接在 Base 主网上以 USDC 付款。

https://mcp.toolstem.com/mcp/finance
  • 无需 FMP API 密钥——你无需提供或管理任何上游数据密钥。
  • 无需基础设施——无需安装、托管或持续运行任何内容。
  • 无需设置——连接 MCP 客户端并调用工具即可。
  • initialize 和 tools/list 免费(用于发现和检查架构)。
  • 每次 tools/call 在 Base 主网上收费 $0.01 USDC,通过 x402 结算。
Claude Desktop

将以下内容放入你的 claude_desktop_config.json:

{
  "mcpServers": {
    "toolstem-finance": {
      "url": "https://mcp.toolstem.com/mcp/finance"
    }
  }
}

重启 Claude Desktop,然后询问:“使用 Toolstem 获取 NVDA 的快照。”

任意 MCP 客户端(LangChain.js)

官方的 @langchain/mcp-adapters 库可直接连接托管 URL:

import { MultiServerMCPClient } from "@langchain/mcp-adapters";
import { ChatOpenAI } from "@langchain/openai";
import { createReactAgent } from "@langchain/langgraph/prebuilt";

const client = new MultiServerMCPClient({
  toolstem_finance: {
    transport: "http",
    url: "https://mcp.toolstem.com/mcp/finance",
    // Add your x402-signing middleware via headers, OR run an x402
    // proxy locally and point url at it. See https://www.x402.org/clients.
  },
});

const tools = await client.getTools();
const agent = createReactAgent({ llm: new ChatOpenAI({ model: "gpt-4o-mini" }), tools });
await agent.invoke({ messages: "Compare AAPL, MSFT, and GOOGL on valuation and growth." });
LangChain 快速入门(langchain-toolstem)

langchain-toolstem 封装会代你处理 x402 付款——传入已充值的钱包密钥,工具就会自动按调用付款:

import { createToolstemTools } from 'langchain-toolstem';
const tools = await createToolstemTools({ walletPrivateKey: process.env.WALLET_KEY });
// Tools auto-pay $0.01 USDC per call via x402

想使用自己的 FMP 密钥自行运行服务?请参阅文末的高级:自行托管。

可在 Toolstem playground 中在线试用这些工具。

产品页面:https://toolstem.com/finance/.


定价

  • MCP initialize 和 tools/list 免费——发现、架构检查和运行状况检查均不收费。
  • 每次调用 tools/call 在 Base 主网上收费 $0.01 USDC,通过 x402 付款。 无需 API 密钥、注册或市场账户——Agent 的钱包直接付款。
工具每次调用
get_stock_snapshot$0.01 USDC
get_company_metrics$0.01 USDC
compare_companies$0.01 USDC
计费方式

Toolstem 使用 x402 支付协议。Agent 在 Base 上以 USDC 按调用付款——无需 API 密钥、订阅或发票。Agent 的钱包通过 EIP-3009 自动结算每次调用。


工作原理

Toolstem 以 Node MCP 服务(本仓库)以及托管的、受 x402 保护的代理形式提供。

Agent ──MCP──▶ Cloudflare Worker (x402 paywall) ──MCP──▶ Toolstem MCP server ──REST──▶ Financial Modeling Prep
                  │                                          │
                  └─ free: initialize, tools/list            └─ composite tool: fans out to 3–5 FMP endpoints
                  └─ paid: tools/call → 0.01 USDC on Base       in parallel, derives signals, returns flat JSON
  • Cloudflare Worker 在 mcp.toolstem.com 终止公共 MCP 连接,并对 tools/call 强制执行 x402 付款。
  • MCP 服务(此软件包)实现 3 个组合工具,并与 Financial Modeling Prep 通信。
  • Base 主网上的 x402 处理微支付——结算不到一秒,无需链下账户。

工具

三个组合工具,每个工具都会综合多个 FMP 端点,并提供衍生信号和预先计算的数学结果。

工具标题必填输入可选输入
get_stock_snapshot股票概览symbol(字符串)—
get_company_metrics公司指标symbol(字符串)period(annual | quarter,默认值为 annual)
compare_companies公司比较symbols(string[2..5])—

这三个工具均为只读、幂等,并且可安全地由 Agent 重试。

get_stock_snapshot

综合股票概览,将报价、公司简介、DCF 估值和评级整合为单个响应。

输入:

{
  "symbol": "AAPL"
}

输出示例(已截断):

{
  "symbol": "AAPL",
  "company_name": "Apple Inc.",
  "sector": "Technology",
  "industry": "Consumer Electronics",
  "exchange": "NASDAQ",
  "price": {
    "current": 178.52,
    "change": 2.34,
    "change_percent": 1.33,
    "day_high": 179.80,
    "day_low": 175.10,
    "year_high": 199.62,
    "year_low": 130.20,
    "distance_from_52w_high_percent": -10.57,
    "distance_from_52w_low_percent": 37.11
  },
  "valuation": {
    "market_cap": 2780000000000,
    "market_cap_readable": "$2.78T",
    "pe_ratio": 29.5,
    "dcf_value": 195.20,
    "dcf_upside_percent": 9.35,
    "dcf_signal": "FAIRLY VALUED"
  },
  "rating": {
    "score": 4,
    "recommendation": "Buy",
    "dcf_score": 5,
    "roe_score": 4,
    "roa_score": 4,
    "de_score": 5,
    "pe_score": 3
  },
  "fundamentals_summary": {
    "beta": 1.28,
    "avg_volume": 55000000,
    "employees": 164000,
    "ipo_date": "1980-12-12",
    "description": "Apple Inc. designs, manufactures..."
  },
  "meta": {
    "source": "Toolstem via Financial Modeling Prep",
    "timestamp": "2026-04-17T18:30:00Z",
    "data_delay": "End of day"
  }
}

衍生字段(原始 API 中不存在):

  • dcf_signal — 如果 DCF 上涨空间 > 10%,则为 UNDERVALUED;如果 < -10%,则为 OVERVALUED;否则为 FAIRLY VALUED。
  • market_cap_readable — 易读的 $2.78T、$450.2B、$12.5M 格式。
  • distance_from_52w_high_percent / distance_from_52w_low_percent — 预先计算的区间位置。

get_company_metrics

深入分析基本面——盈利能力、财务健康状况、现金流、增长和每股指标——综合自 5 个财务报表端点。

输入:

{
  "symbol": "AAPL",
  "period": "annual"
}

period 可接受 annual(默认值)或 quarter。

输出示例(已截断):

{
  "symbol": "AAPL",
  "period": "annual",
  "latest_period_date": "2025-09-30",
  "profitability": {
    "revenue": 394328000000,
    "revenue_readable": "$394.3B",
    "revenue_growth_yoy": 7.8,
    "net_income": 96995000000,
    "net_income_readable": "$97.0B",
    "gross_margin": 46.2,
    "operating_margin": 31.5,
    "net_margin": 24.6,
    "roe": 160.5,
    "roa": 28.3,
    "roic": 56.2,
    "margin_trend": "EXPANDING"
  },
  "financial_health": {
    "total_debt": 111000000000,
    "total_cash": 65000000000,
    "net_debt": 46000000000,
    "debt_to_equity": 1.87,
    "current_ratio": 1.07,
    "interest_coverage": 41.2,
    "health_signal": "STRONG"
  },
  "cash_flow": {
    "operating_cash_flow": 118000000000,
    "free_cash_flow": 104000000000,
    "free_cash_flow_readable": "$104.0B",
    "fcf_margin": 26.4,
    "capex": 14000000000,
    "dividends_paid": 15000000000,
    "buybacks": 89000000000,
    "fcf_yield": 3.7
  },
  "growth_3yr": {
    "revenue_cagr": 8.2,
    "net_income_cagr": 10.1,
    "fcf_cagr": 9.5,
    "growth_signal": "ACCELERATING"
  },
  "per_share": {
    "eps": 6.42,
    "book_value_per_share": 3.99,
    "fcf_per_share": 6.89,
    "dividend_per_share": 0.96,
    "payout_ratio": 14.9
  },
  "meta": {
    "source": "Toolstem via Financial Modeling Prep",
    "timestamp": "2026-04-17T18:30:00Z",
    "periods_analyzed": 3,
    "data_delay": "End of day"
  }
}

衍生字段:

  • margin_trend — 根据净利润率序列的变化方向,取值为 EXPANDING、STABLE 或 CONTRACTING。
  • health_signal — 根据债务权益比、流动比率和利息覆盖率,取值为 STRONG、ADEQUATE 或 WEAK。
  • growth_signal — 根据同比增长轨迹,取值为 ACCELERATING、STEADY 或 DECELERATING。
  • revenue_cagr、net_income_cagr、fcf_cagr — 分析时间范围内的复合年增长率。
  • fcf_margin、fcf_yield — 根据现金流、收入和市值预先计算。

compare_companies

并排比较 2–5 家公司的价格、估值、盈利能力、财务健康状况、增长、股息和分析师评级。

输入:

{
  "symbols": ["AAPL", "MSFT", "GOOGL"]
}

symbols 必须是包含 2 到 5 个股票代码字符串的数组。

输出示例(已截断):

{
  "symbols_compared": ["AAPL", "MSFT", "GOOGL"],
  "comparison_date": "2026-04-20T18:30:00Z",
  "companies": [
    {
      "symbol": "AAPL",
      "company_name": "Apple Inc.",
      "sector": "Technology",
      "price": { "current": 178.52, "change_percent": 1.33 },
      "valuation": { "pe_ratio": 29.5, "dcf_upside_percent": 9.35 },
      "profitability": { "net_margin": 24.6, "roe": 160.5, "roic": 56.2 },
      "financial_health": { "debt_to_equity": 1.87, "current_ratio": 1.07 },
      "growth": { "revenue_growth_yoy": 7.8, "earnings_growth_yoy": 10.1 },
      "dividend": { "dividend_yield": 0.5, "payout_ratio": 14.9 },
      "rating": { "score": 4, "recommendation": "Buy" }
    }
  ],
  "rankings": {
    "lowest_pe": "GOOGL",
    "highest_margin": "AAPL",
    "strongest_balance_sheet": "GOOGL",
    "best_growth": "MSFT",
    "most_undervalued": "GOOGL",
    "highest_rated": "MSFT"
  },
  "meta": {
    "source": "Toolstem via Financial Modeling Prep",
    "timestamp": "2026-04-20T18:30:00Z",
    "data_delay": "Real-time during market hours",
    "api_calls_made": 19
  }
}

衍生字段:

  • rankings — 自动计算:lowest_pe、highest_margin、strongest_balance_sheet、best_growth、most_undervalued、highest_rated。
  • 每家公司均预先计算所有估值、盈利能力、健康状况和增长指标。
  • 使用批量报价,高效获取多个股票代码的价格。

为什么选择 Toolstem?

大多数金融 MCP 服务都为每个 API 端点提供一个工具——这迫使 Agent 连续调用 4–5 次、编写胶水代码,并推理原始数据的结构。Toolstem 则采用了不同的方式:

  • 并行获取数据——每个工具都会并发请求多个数据源。
  • 衍生信号——根据原始数字计算出 UNDERVALUED、STRONG、ACCELERATING 等易于理解的建议。
  • 预先计算的数学结果——响应中已包含 CAGR、同比增长、利润率趋势、距 52 周高点/低点的距离、FCF 收益率等。
  • 扁平且可预测的架构——不会将供应商复杂且深层嵌套的差异泄漏到 Agent 提示词中。
  • 优雅降级——如果某个上游端点失败,响应的其余部分仍会返回,失败项以 null 填充。

高级:自托管

大多数用户应使用上方的托管端点 — 无需 API 密钥、基础设施或配置。本节面向明确希望自行运行服务的用户。

使用你自己的 FMP 密钥,在本地运行 Node MCP 服务 — 无需 x402,除 FMP 配额外也无需按次付费。你需要自行获取并管理 FMP_API_KEY,并负责运行所需的任何基础设施。

npm
npm install -g toolstem-mcp-server

stdio(默认 — 用于 Claude Desktop、Cursor 等):

FMP_API_KEY=your_key_here toolstem-mcp-server

HTTP — 仅限本地(默认,绑定到 127.0.0.1):

FMP_API_KEY=your_key_here toolstem-mcp-server --http

HTTP — 远程 + 身份验证(绑定到 0.0.0.0,需要 bearer 令牌):

FMP_API_KEY=your_key ALLOW_REMOTE=1 MCP_AUTH_TOKEN=my-secret toolstem-mcp-server --http

客户端必须在每个 /mcp 请求中发送 Authorization: Bearer my-secret。

HTTP — 禁用身份验证(仅限本地):

FMP_API_KEY=your_key MCP_AUTH_DISABLED=1 toolstem-mcp-server --http

MCP_AUTH_DISABLED=1 会强制服务绑定到 127.0.0.1,无论 ALLOW_REMOTE 的值如何。这是适用于开发的安全模式,即“跳过身份验证,仅限本地”。

HTTP — 远程且无身份验证(危险):

FMP_API_KEY=your_key ALLOW_REMOTE=1 MCP_AUTH_DISABLED=1 I_KNOW_THIS_IS_DANGEROUS=1 toolstem-mcp-server --http

警告: 这会将你的 FMP API 密钥暴露给任何能够访问该端口的人。需要设置全部三个环境变量。启动时会显示 [SECURITY WARNING] 警告横幅,并每隔 60 秒重复显示。仅用于可信网络或开发环境。

Claude Desktop(自托管)
{
  "mcpServers": {
    "toolstem": {
      "command": "npx",
      "args": ["-y", "toolstem-mcp-server"],
      "env": {
        "FMP_API_KEY": "your_fmp_api_key"
      }
    }
  }
}
从源代码运行
npm install
npm run build
FMP_API_KEY=your_key npm run start:http

环境变量

变量必需说明
FMP_API_KEY是(自托管)Financial Modeling Prep API 密钥。请前往 financialmodelingprep.com 获取。调用托管端点时无需此密钥。
PORT否HTTP 传输端口。默认为 3000。
ALLOW_REMOTE否设置为 1,可将 HTTP 绑定到 0.0.0.0,而非 127.0.0.1。
MCP_AUTH_TOKEN当 ALLOW_REMOTE=1 时用于对 /mcp 请求进行身份验证的 Bearer 令牌。
MCP_AUTH_DISABLED否设置为 1 可跳过身份验证。除非同时设置 I_KNOW_THIS_IS_DANGEROUS=1,否则会强制绑定到 127.0.0.1。
I_KNOW_THIS_IS_DANGEROUS否与 ALLOW_REMOTE=1 和 MCP_AUTH_DISABLED=1 一同设置为 1,以允许无身份验证的远程访问。此设置会触发定期显示的警告横幅。

开发

npm install
npm run dev           # stdio, hot reload via tsx
npm run build         # TypeScript -> dist/
npm start             # run built stdio server
npm run start:http    # run built HTTP server

架构

src/
├── index.ts          # MCP server entry (stdio + Streamable HTTP)
├── actor.ts          # Apify Actor entry (legacy)
├── services/
│   └── fmp.ts        # Financial Modeling Prep API client
├── tools/
│   ├── get-stock-snapshot.ts
│   ├── get-company-metrics.ts
│   └── compare-companies.ts
└── utils/
    └── formatting.ts # Market cap formatting, CAGR, trend signals

所有 FMP 端点都封装在单个 FmpClient 类中。工具实现会通过 Promise.all 并行调用多个客户端方法,然后合成合并后的结果。


许可证

MIT — 请参阅 LICENSE。


Toolstem — 为 Agent 原生经济精选的金融情报。https://toolstem.com/finance/

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。