Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
US equity data for AI agents — 23 years intraday + daily, SEC filings. x402 USDC payments.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://cabrini.ai/mcp在终端中运行这条命令
claude mcp add --transport http market-data https://cabrini.ai/mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"market-data": {
"url": "https://cabrini.ai/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"market-data": {
"type": "http",
"url": "https://cabrini.ai/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://cabrini.ai/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过域名 cabrini.ai 验证(注册中心会核实域名所有权)
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(1.1.0)于3个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Spec Driven Development, Remote Desktop Commander, LexPact UK Contracts
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Generate UK-law contracts: NDA, service, freelance, recruiter terms of business, IR35.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
US stock market data for AI agents. 23 years of intraday and daily bars, SEC fundamentals, filings, and insider data — every US equity from 2003 to present.
Pay per query with USDC on Base (x402). No API keys, no subscriptions, no signup.
pip install cabrini
from cabrini import Cabrini
c = Cabrini(private_key="0x...") # any Base wallet with USDC
bars = c.query("AAPL", "2024-01-15")
daily = c.daily("TSLA", "2024-01-01", "2024-03-31")
fins = c.fundamentals("NVDA")
brief = c.brief("MSFT")
from cabrini import get_langchain_tools
from langchain_openai import ChatOpenAI from langgraph.prebuilt import create_react_agent
tools = get_langchain_tools(private_key="0x...") agent = create_react_agent(ChatOpenAI(model="gpt-4o"), tools)
result = agent.invoke({"messages": [ {"role": "user", "content": "What was NVDA's trading volume on the day of their last earnings?"} ]})
from cabrini import get_crewai_tools
from crewai import Agent, Task, Crew
tools = get_crewai_tools(private_key="0x...")
analyst = Agent( role="Financial Analyst", goal="Analyze stock performance using real market data", tools=tools, )
task = Task( description="Compare AAPL and MSFT intraday volatility on 2024-06-15", agent=analyst, )
Crew(agents=[analyst], tasks=[task]).kickoff()
Point any MCP client at https://cabrini.ai/mcp:
{
"mcpServers": { "cabrini": { "url": "https://cabrini.ai/mcp" } } }
| Method | Price | Description |
|---|---|---|
query(ticker, date) | $0.025 | Full trading day of intraday bars |
daily(ticker, start, end) | $0.001/year | Daily OHLCV + VWAP — the absolute prices |
batch(tickers, date) | $0.02/ticker | Several tickers, one date, no limit |
range(ticker, start, end) | $0.01/trading day | Multi-day intraday, no limit |
bars(ticker, date, interval) | $0.015/day | Resampled intraday, 3-240 min |
scan(date, **criteria) | $0.10 | Screen every US stock; needs >= 1 criterion |
tickers(date) | $0.005 | List traded tickers |
company(ticker) | $0.005 | Company profile from SEC EDGAR |
fundamentals(ticker) | $0.02 | SEC quarterly data |
filings(ticker) | $0.01 / $0.05 | SEC filing index; +extracted section text |
insiders(ticker) | $0.02 | Insider transactions (Form 4) |
brief(ticker) | $0.25 | Joined research brief |
Prices are quoted live in each 402 response and the client pays whatever the server asks — this table is documentation, not the source of truth.
Intraday methods (query, range, batch, bars) return fractional change from the daily open, not price levels:
{"window_start": "2024-01-02T14:30:00", "timestamp": 1704204600000000000,
"pct_open": 0.0, "pct_high": 0.0012, "pct_low": -0.0003, "pct_close": 0.0008, "volume": 47000, "transactions": 312}
pct_x = (bar_x - day_open) / day_open, so 0.0012 is +0.12%.
daily() carries the absolute levels — open, high, low, close, volume, transactions and VWAP. Combine the two to reconstruct prices:
day = c.daily("AAPL", "2024-01-02", "2024-01-02")["data"][0]
bars = c.query("AAPL", "2024-01-02")["data"] close_price = day["open"] * (1 + bars-1)
Use daily() rather than a third-party open: our reference is the first bar of the session and includes pre-market, so an external 09:30 open will not reconcile exactly.
Every paid request uses x402 — an open protocol for HTTP micropayments:
402 with a PAYMENT-REQUIRED headerX-PAYMENT header containing the signed authorizationThe Cabrini client handles all of this automatically. You just need a wallet with USDC on Base.