Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Rust MCP server for SEC EDGAR data — company filings, financial concepts, and company info
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ผู้ทำยังไม่ได้ใส่วิธีติดตั้งใน registry ให้ดู README ของผู้ทำด้านล่าง
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub brechanbech ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.10.0) เข้า registry 11 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Rust ในเครื่องด้วย
ในหมวดเดียวกันมี Finance Toolkit, SolidInvoice, Korea Tax Calculator
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A Model Context Protocol server that gives Claude Desktop access to SEC EDGAR data — company filings, financial statements, and company info. No API key needed. It runs as a single native binary, with no Node, Python or Docker runtime behind it.
EDGAR is a set of public REST endpoints with no API key, and the documentation at sec.gov/search-filings/edgar-application-programming-interfaces is reasonable. So strictly speaking, an MCP isn't needed. What this wrapper buys you:
company_tickers.json and parse it from scratch. The MCP caches it for an hour.CY{period} prefix on the XBRL frames endpoint, the trailing I for instant concepts, the zero-padded CIK, the dash-stripped accession number in archive URLs. Easy to get wrong on the fly; encoded once in the tool.companyfacts responses are tens of MB and filings.recent is laid out as column-major parallel arrays. Both are usable, but a language model would burn a lot of context reformatting them. The MCP returns trimmed, row-shaped JSON.If you only pull one or two filings a year, you don't need this — just give Claude the URL. At any higher volume, the wrapper pays for itself by turning "explain the URL grammar in every conversation" into "ask a natural question."
Install with Cargo (Rust 1.88 or newer):
cargo install sec-mcp
This compiles the rustls crypto backend (ring), which has a small amount of C, so you need a C compiler on the build host — but no cmake or assembler. macOS (Xcode Command Line Tools) and most desktop Linux distros already have one; a minimal Linux image may not — install it first, e.g. apt install build-essential on Debian/Ubuntu.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": { "sec-edgar": { "command": "sec-mcp", "args": [] } } }
Restart Claude Desktop.
On your first SEC-related request Claude will explain that a contact email is required by the SEC EDGAR fair-access policy and ask your permission before proceeding. Your email is stored locally in ~/Library/Application Support/sec-mcp/config.toml and is only used in the HTTP User-Agent header sent to the SEC — it is not shared anywhere else.
| Tool | Description |
|---|---|
sec_configure | First-run setup — saves your contact email |
sec_lookup_cik | Resolve a ticker to its SEC CIK number, or search every EDGAR filer by name: fund managers, private issuers and individuals with no ticker included |
sec_company_info | SIC code, industry, state of incorporation, fiscal year end, addresses |
sec_recent_filings | Recent filings (10-K, 10-Q, 8-K, etc.) with direct URLs — pages into older history automatically when a form-type filter needs it. With no ticker, the latest filings across all of EDGAR in real time, by form, with each filing's parties and an 8-K's items |
sec_filing_text | The text of a filing document or exhibit (10-K, 10-Q, 8-K, earnings release EX-99.1, proxy): its section index, any section by item, a search within it, or pages from any point. Given a filing, lists its documents by type |
sec_full_text_search | Search the body text of filings since 2001, exhibits included — the only tool here that finds companies by what they *said*, rather than needing the company up front. Filter by form, ticker and date (amendments excluded unless asked for); every hit carries a direct document URL. With no query, lists filings by form and date instead, for any period since 2001 |
sec_insider_transactions | Forms 3, 4 and 5 — who bought or sold, when, how many shares and at what price, with transaction codes in plain language and footnotes resolved. Also Form 144, an insider's notice of a proposed sale, with any 10b5-1 plan date |
sec_institutional_holdings | Form 13F — what an institutional manager (Berkshire, Bridgewater, BlackRock) holds each quarter, as positions with value, share of portfolio and voting authority, filterable by issuer. Issuers are named as filed, since 13F has no tickers |
sec_private_offerings | Form D — money raised without a registered offering by private companies, funds and public companies: amount offered and sold, investors, the exemption claimed, brokers paid, and the officers, directors and promoters named |
sec_beneficial_ownership | Schedules 13D and 13G — who owns more than 5% of a company, with voting and dispositive power, percent of class and, for a 13D, the holder's stated purpose. Given a holder's CIK, what that holder owns above 5% |
sec_financial_concept | Historical financial data from XBRL (revenue, net income, EPS, assets…) — latest 20 facts by default, paging back into older history |
sec_list_tickers | Search/list all SEC-registered tickers with exchange info — 50 per page, with paging |
sec_company_facts | Discover all XBRL concepts (metrics) a company reports |
sec_xbrl_frames | Cross-company comparison of a financial metric for a given period |
Wherever a tool takes a ticker, it also takes a CIK (1163302, 0001163302 or CIK0001163302). SEC's ticker list holds only current tickers, so a company that was acquired, delisted or renamed is reachable only by CIK. sec_lookup_cik with name finds it, and full-text search hits and frames rows carry one.
10-K/A and friends)A form ending in /A amends one filed earlier. A 10-K/A is often not a complete annual report. Rule 12b-15 requires only the full text of each item being changed, so the most common amendment is Part III alone (directors, pay, ownership), filed when the proxy statement misses its 120-day window. Others add or fix exhibits. The rest are restatements that replace the original's figures. Apple's January 2010 10-K/A, for example, refiled fiscal 2009 under new revenue-recognition rules.
sec-mcp therefore excludes amendments unless you ask for them:
sec_financial_concept's annual/quarterly period filters match base forms only. The amended period is already covered by the original filing, and admitting both would report two facts for one period. Pass include_amendments: true to admit them when the restatement is what you want: Apple's fiscal 2009 revenue is $36.5B on the original 10-K and $42.9B on the 10-K/A. amended_facts then counts them.sec_full_text_search with a form filter drops amendments. EDGAR itself does not: it filters on a filing's *root* form, so forms=10-K also returns 10-K/A. To get amendments, request the form directly (10-K/A), list both (10-K,10-K/A), or pass include_amendments: true. Any amendment returned is marked amendment: true.Because that search filtering happens after EDGAR's, two parts of the response behave differently from a plain search:
total_is_upper_bound, or total_is_approximate when it has also saturated at 10000. Each page reports amendments_excluded.next_offset. A page can return fewer than limit hits because amendments were skipped, so offset + returned would revisit them.sec_financial_concept| Concept | What it is |
|---|---|
Revenues | Total revenues |
NetIncomeLoss | Net income / loss |
EarningsPerShareBasic | Basic EPS |
EarningsPerShareDiluted | Diluted EPS |
Assets | Total assets |
Liabilities | Total liabilities |
StockholdersEquity | Shareholders' equity |
OperatingIncomeLoss | Operating income / loss |
CashAndCashEquivalentsAtCarryingValue | Cash and equivalents |
CommonStockSharesOutstanding | Shares outstanding |
cargo test # offline; hits no network
There is also an opt-in live suite that drives the built server over stdio against the real SEC EDGAR APIs — the thing offline tests can't see, like EDGAR changing a response shape or a URL-construction quirk slipping through. It is skipped unless SEC_MCP_LIVE_EMAIL is set, which both opts in and supplies the contact email the fair-access policy requires (the address is read from the environment, never committed):
SEC_MCP_LIVE_EMAIL="you@example.com" cargo test --test live_smoke -- --nocapture
The suite runs sequentially through one server process, so it stays well within EDGAR's rate limit.
MIT — see LICENSE.md for details.
Ownership-verification token for the MCP registry (read from this crate's rendered README on crates.io):
Registry ownership token:
mcp-name: io.github.brechanbech/sec-mcp
A version is immutable once published — crates.io yanks, it does not delete, and a number is never reused — so the order matters:
cargo test and cargo clippy --all-targets clean.version in `Cargo.toml`.version in `server.json` — *both* fields, the top-level one and the one under packages[]. Nothing enforces this: no script, no CI, no test reads the file, and it is the step that goes missing. This manifest stayed correct, but the registry *entry* did not: 0.5.0, 0.5.1 and 0.5.2 all shipped to crates.io while the registry still advertised 0.4.4, because step 6 was never run.cargo publish --dry-run, which compiles *from the packaged copy* and so catches a crate depending on a file it does not ship. Then cargo publish. Give both --target-dir target/package-verify. Without it, the verify build shares target/debug with ordinary builds under the same unit hash, so the binary'sตัดมาแค่ช่วงต้น อ่านต่อใน repo