Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Live market events, research reports, and 750M+ curated equity datapoints on 2,900+ companies.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://mcp.flexreportfinapi.com/mcpพิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http flexreport-finance https://mcp.flexreportfinapi.com/mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"flexreport-finance": {
"url": "https://mcp.flexreportfinapi.com/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"flexreport-finance": {
"type": "http",
"url": "https://mcp.flexreportfinapi.com/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://mcp.flexreportfinapi.com/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ผู้ลงทะเบียน (flexreportfinapi.com) ไม่ใช่เจ้าของ repo (cbecks1212) อาจเป็นคนอื่นที่นำมาลงต่อ
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 0 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.0.0) เข้า registry 23 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี 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 standalone MCP microservice that provides access to Flexreport Finance's live events, research-report artifacts, and database of 750M+ datapoints as on-demand tools for Claude (and any MCP client).
It supercharges AI agents with real-time market events and curated, golden-source data spanning fundamentals, transcripts, filings, insider trades (Forms 3, 4, and 5), ratios, macro data, IR decks pulled straight from each company's investor relations site, and more.
Add the connector to Claude Code
claude mcp add --transport http flexreport https://mcp.flexreportfinapi.com/mcp
Or add to Codex
codex mcp add flexreport --url https://mcp.flexreportfinapi.com/mcp
Then start Claude and just ask (e.g. *"pull the biggest movers from flexreport"*). On the first data call your MCP client runs an OAuth sign-in in your browser — sign in or register when prompted; you never paste a token. Add --scope user to make it available in every directory. See Auth for details.
Stream real-time events in the terminal. Ask Claude to watch the market and events arrive as they land: movers, earnings releases, 8-Ks, IR decks and fresh report plans. As each report plan saves, Claude renders the refreshed report.
*"Look out for the biggest movers, earnings releases, transcript updates, investor
decks, and 8K releases post market close, streaming these as they happen with Flexreport"*
*"For every thing that comes, can you check if the latest report plan is available,
to pull a refreshed report to provide deeper context"*
Open the research report. Every figure links back to the query that produced it, and every headline links to its source. Here's a report for AAPL:
*"Get me the latest flexreport report for AAPL"*
Open the full AAPL report (PDF, 13 pages)
1a. Streaming (events and real-time reports). Subscribe to events as they publish, including the report_plan topic, which fires each time a report is ready, then pull the rendered report: *"Subscribe me to earnings releases, 8-Ks, IR publications and new report plans for NVDA, AVGO, AMD and MU. As each one lands, tell me what happened, check the intraday tape for an abnormal move, and pull the Flexreport Finance report once it's ready."*
Tools: register_event_subscription → stream_event_subscription, or ad-hoc stream_events, then detect_intraday_outlier_jumps and get_latest_report.
By default, a live-streaming ask gets a dashboard (in Claude, an Artifact) rather than a chat transcript. The page runs the stream_events loop itself, carrying the cursor from read to read, so one prompt keeps the stream open. If the page can't reach the server, the agent runs the loop and writes each event into the dashboard. Ask for chat output explicitly if you prefer the terminal view shown in the demo above.
1b. Events from the past twelve hours. Analyze real-time SEC 8-K filings, while also pulling in investor relations decks and 5-minute bars to quickly identify stocks making meaningful moves: *"What are the latest 8-K releases? Highlight the most significant ones, pull the accompanying investor relations releases via Flexreport Finance, chart 5-minute bars for any names making meaningful moves, and tell me how they align with each company's current state. I would like this in tabular format: 8-K summary, company trend, Flexreport Finance 8-K analysis S3 link, IR deck link."*
Tools: situate (no symbols) → list_realtime_events, then get_aftermarket_data / detect_intraday_outlier_jumps and get_latest_report.
2a. The latest report for a specific company: *"Pull the latest Flexreport Finance report on Snowflake and summarize what changed this quarter: guidance, margins, and anything management flagged on the call."*
Tools: get_latest_report(["SNOW"]). It returns the latest report in seconds; a stale or missing symbol can get a new note from generate_report_for_stock (a few minutes).
2b. The latest reports for a time period: *"What reports have come out in the Energy sector over the past three days? Pull the fresh ones and rank them by how significant the underlying event was."*
Tools: list_available_reports(report_date=<3 days ago>), filtered to Energy names (list_options("sectors"), get_company_snapshot), then get_latest_report for the fresh ones.
2c. A bespoke report built on your criteria: *"Build me a report on large-cap US semiconductors with ROIC above 20% and net debt/EBITDA under 1x, trading above their 200-day SMA with RSI below 60. Show the fundamentals, the technicals and the latest estimate revisions for each, laid out in my saved template."*
Tools: screen_stocks, explore_data_catalogue (ratios, fundamentals, estimates), get_technical_indicator_data, and get_user_template. The agent assembles the PDF in your template; set one up with draft_user_template → save_user_template.
Predict upcoming earnings volatility, pulling in simple and exponential moving averages and Bollinger Bands, and creating a bespoke investment memo: *"Predict tomorrow's upcoming earnings volatility, highlighting the stocks slated for the biggest moves; chart their simple and exponential moving averages and Bollinger Bands; and highlight the biggest fundamental drivers right now, putting this all in an investment memo for my team."*
Tools: list_earnings_announcements → predict_earnings_move, get_technical_indicator_data, get_company_snapshot.
Run thematic research on a market narrative: *"The AI trade has cooled recently, largely due to CapEx concerns and return on investment. I believe this has happened before, in the fall of 2025. Can you confirm, and what were the factors that allayed those concerns? Was it management commentary, continued demand for AI services, robust profitability and higher guidance? Please put together an in-depth report with Flexreport Finance."*
Tools: explore_data_catalogue (transcripts, fundamentals, estimates), trace_data_sources / get_document_section for cited quotes, or generate_research_report for the full write-up.
59 tools, grouped by the module that registers them. Clients see them in tools/__init__.py import order (situate first).
tools/realtime_events.py)| Tool | Backend endpoint | What it does |
|---|---|---|
situate(symbols, event_type, card_types, window_days, sections, include_fetch, event_types, family, question, top_tickers, report_inventory, include_keys) | GET /situate-company (with symbols, one call per symbol in parallel) / GET /situate-market (no symbols) | The first call. A pass-through to the backend's situation endpoints. With symbols: the company's event web deduped to the newest node per event type and per table (same_chain_run edges link each table to the event that wrote it), the event cards, the table cards with read_by (the tool that reads each table — company_financials for the EDGAR statements) and refreshed_by, and entailed routed to the company's EDGAR or FMP side. Defaults to the backend's lean call (MAR on 2026-11-02: 110K characters, 53K with event_type + card_types, 220K with every section and key). No symbols: the market — up to 4 event types in reading order (shape named_types / family / sweep, routed from event_types, else family, else the question keywords; nothing named = a sweep, no default family), each with its trimmed card, what the 12h realtime cache holds (count, newest/oldest, tickers or CIK/strategy members) and fresh/stale report-plan counts, plus the whole event-type corpus and market status; 3-10K characters. Scope-mismatched arguments are rejected. Unstructured output (a company payload would be sent twice). Synchronous, auth |
list_realtime_events(event_type, tickers, sector, industry, market_cap) | POST /get-realtime-events | Pull live events (EPS updates, transcripts, ratings, …) from the 12h cache; each event's report_inputs (the ~27 KB report config) is dropped, report_inputs_key kept |
get_company_snapshot(symbol) | GET /get-company-snapshot | Structured snapshot: thesis, fundamentals, technicals, price targets, ownership, grades |
get_company_event_web(symbol, window_days, max_nodes) | GET /get-company-event-web | The why behind the snapshot — the company's recent event graph: time-ordered event/data_update nodes with fetch hints and typed edges (same_chain_run / lineage / co_occurrence). Pair it with get_company_snapshot, and call it before chaining a targeted list_realtime_events / explore_data_catalogue / report request at one symbol |
get_event_ontology(event_type, family, relation, format) | GET /get-event-ontology | The class-level ontology behind the event web — what an event type entails: the tables written when it fires (by layer), the events that usually follow (observed rate / lag), where the payload lives after the 12h realtime cache (persisted_in), which workflow refreshes each relation and its next_run_at (the freshness check), and which tool reads it. Symbol-independent, public, cacheable — call it first on any event-driven request and join it to a web node's type / relation / family |
tools/event_subscriptions.py)Default delivery for a live-streaming ask is a dashboard (in Claude, an Artifact) whose page loops stream_events with its cursor. The server instructions and the stream tools' docstrings both say so.
| Tool | Backend endpoint | What it does |
|---|---|---|
stream_events(topics, symbols, cursor, max_events, max_wait_seconds) | GET /events (SSE) | Push delivery, ad-hoc. A bounded read of the realtime-event stream: returns after max_events matched events or max_wait_seconds (cap 55 s) with {events, cursor, closed} — each event is the same object list_realtime_events returns, the moment it publishes. Filter inline by topics (event types or families from list_options("event_types"), plus the stream-only report_plan topic — a frame each time a report plan is saved) and symbols. No server-side state: always pass the returned `cursor` back in or the next call starts at "now" (authed) |
register_event_subscription(topics, symbols) | POST /register-subscription | Save a filter server-side → {subscription_id, filter, cursor, created_at}. Only events published after registration are delivered; keep the id (no list endpoint yet). 30/hour (authed) |
| stream_event_subscription(subscription_id, cursor, max_events, max_wait_seconds) | GET /event-subscription/{id} (SSE) | Push delivery, resumable. Same bounded-read shape as stream_events, but the API saves the cursor when the read closes, so repeated calls see every matching event exactly once with no cursor bookkeeping; cursor only overrides the saved position for one connection. closed: "subscription deleted" means stop reconnecting; 404 covers a
ตัดมาแค่ช่วงต้น อ่านต่อใน repo