Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Oxford Ledge

by hs902version 3.8.3i★ –iComputer or cloud
Registry namecom.oxfordledge/oxford-ledge

Install

Overview

Description from the maker (original English)

Ask your assistant; it reads the public record: SEC filings, 13F, insider trades, BDC loans.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Computer or cloud
  • Transport: stdio, Streamable HTTP
  • Category: Accounting, finance & tax
  • You need to fill in: OXFORD_LEDGE_API_KEY, FRED_API_KEY, X-API-Key

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • You fill in yourself: OXFORD_LEDGE_URL, OXFORD_LEDGE_API_KEY, FRED_API_KEY, X-API-Key

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • Runs in the cloudNothing to install; it connects over the internet
  • PyPIPython’s uv installed (for the uvx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Or run it on your computer

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "oxford-ledge": {
      "command": "uvx",
      "args": [
        "oxford-ledge-mcp"
      ],
      "env": {
        "OXFORD_LEDGE_URL": "your-value",
        "OXFORD_LEDGE_API_KEY": "your-value",
        "FRED_API_KEY": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add --transport http oxford-ledge https://www.oxfordledge.com/mcp --header 'X-API-Key: your-value'

Or run it on your computer

claude mcp add oxford-ledge --env OXFORD_LEDGE_URL=your-value --env OXFORD_LEDGE_API_KEY=your-value --env FRED_API_KEY=your-value -- uvx oxford-ledge-mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "oxford-ledge": {
      "url": "https://www.oxfordledge.com/mcp",
      "headers": {
        "X-API-Key": "your-value"
      }
    }
  }
}

Or run it on your computer

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "oxford-ledge": {
      "command": "uvx",
      "args": [
        "oxford-ledge-mcp"
      ],
      "env": {
        "OXFORD_LEDGE_URL": "your-value",
        "OXFORD_LEDGE_API_KEY": "your-value",
        "FRED_API_KEY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "oxford-ledge": {
      "type": "http",
      "url": "https://www.oxfordledge.com/mcp",
      "headers": {
        "X-API-Key": "your-value"
      }
    }
  }
}

Or run it on your computer

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "oxford-ledge": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "oxford-ledge-mcp"
      ],
      "env": {
        "OXFORD_LEDGE_URL": "your-value",
        "OXFORD_LEDGE_API_KEY": "your-value",
        "FRED_API_KEY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • OXFORD_LEDGE_URL env
    Set to https://www.oxfordledge.com to reach the hosted data. Without it only the standalone SEC-EDGAR and FRED tools answer.
  • OXFORD_LEDGE_API_KEY secret env
    Optional ol_live_ key from https://www.oxfordledge.com/mcp#get-your-key; needed only for the Researcher-tier tools.
  • FRED_API_KEY secret env
    Optional free FRED key; enables the standalone FRED tools.
  • X-API-Key secret HTTP header
    Optional. An ol_live_ key from https://www.oxfordledge.com/mcp#get-your-key. Without it the anonymous tools answer; with it, the tools your plan's tier allows.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

We have not read this server’s tool list yet; we check endpoints in rotation.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified against the domain oxfordledge.com (the registry checks domain ownership)

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • … Not checked yet

    Endpoint responds

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    Sign-in with OAuth

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Accounting, finance & taxi

  • More stars than 0% of the other 2909 servers in this category
  • Published to the registry more recently than 55% of the other 2909 servers in this category
  • Basic checks equal to or better than 100% of the other 2909 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Oxford Ledge safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: OXFORD_LEDGE_API_KEY, FRED_API_KEY, X-API-Key

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed –, and the latest version (3.8.3) reached the registry 27 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Finance Toolkit, SolidInvoice, Korea Tax Calculator

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Finance Toolkit

by JerBouma

500+ transparent financial methods calculated from raw statements, not third-party endpoints.

Computer or cloud★ 5,496MITUpdated yesterday
Install

SolidInvoice

by SolidInvoice

Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.

Runs in the cloud★ 981MITUpdated 8 days ago
Install

Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.

Runs on your computer★ 97MITUpdated yesterday
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

Oxford Ledge MCP Server

Last updated: 2026-11-05

Version: 3.8.4 (gov-public-data-only surface; CUSIP + third-party-FRED carve-outs)

Ask your assistant; it reads the public record. This package lets Claude, Codex, Cursor or any client that speaks the Model Context Protocol look things up in SEC filings and fundamentals, 13F holdings, insider trades, BDC loan books, and Treasury, FRED, FDIC, USAspending, USPTO and CFTC data, with the source named on the answer.

Install: pip install oxford-ledge-mcp (Python 3.9 or later, no third-party dependencies). Connect: step-by-step setup for each client, and a free API key, at [oxfordledge.com/mcp](https://www.oxfordledge.com/mcp). Registry: listed in the official MCP Registry as com.oxfordledge/oxford-ledge, with this package and, as its remote, the hosted server at https://www.oxfordledge.com/mcp.

Free on every Oxford Ledge plan, and a few tools run with no account at all (see *Standalone mode* below). The release notes come next; what the tools cover, the three modes, the tool list and the data terms follow them.

Release notes

This is 3.8.4. No tool or argument is added, renamed or removed. Added -- keys the Oxford Ledge server already sends now pass this package's fail-closed emit filter (an installed 3.8.3 strips them): on the nine BDC tools, withheldFilings names a stored filing Oxford Ledge withholds because it read it wrongly (a quarter the answer skipped), and get_bdc_list / get_bdc_holdings carry fallbackFiling when a BDC's newest filing is the withheld one; get_bdc_borrower_mark_history and ol_bdc_borrower_dispersion accept a borrower name as well as the stored key -- "Coupa" or "Coupa Holdings, LLC" reaches "coupa" -- and say how it resolved (match_type / resolved_from / candidates on ol_bdc_borrower_dispersion, matchType / resolvedFrom / candidates on get_bdc_borrower_mark_history; a name matching several borrowers picks none and lists them); ol_bdc_borrower_dispersion says which lenders are current (is_current_lender, current_lender_count, inactive_lenders_excluded), which loans are not in U.S. dollars (par_currency, benchmark_note) and when an over-budget answer was folded (compaction), and carries fred_notice beside its SOFR base_rate; get_bdc_holdings and search_bdc_borrower rows carry markStatus (an undrawn or partly funded commitment, whose mark is not a price), lienClass and lienDetail, with weightedAvgPriceBasis, the portfolioStructure share basis and fairValueReconciliation on the holdings and costAmount and descriptionLabel on the borrower search; ol_bdc_mark_changes labels each comparison, and ol_bdc_credit_quality carries its reconciliation block; search_bdc_borrower (possibleRelatedBorrowers, possibleRelatedBorrowersBasis, possibleRelatedBorrowersNote, and possibleRelatedBorrowerNorm on an exited holder row) and ol_bdc_borrower_dispersion (possible_related_borrowers, and possible_related_key on an exited lender row) list other stored borrower keys that may be the same company -- possibly the same company (automated name match, not reviewed): never summed, and no exit is relabelled. Added: every refusal says whether a retry can help (retryable). Changed: get_value_investing_fact category is an enum of the seven stored categories (another value is refused before a request is sent); get_fred_data's cleared roster adds EFFR and FYFSD (42 series); the tool-notes pointer left the 29 descriptions and is said once at connect. Host-side (an installed 3.8.3 sees it too): BDC tools refuse a ticker that is not a tracked BDC, and get_bdc_holdings refuses one instead of returning it as data; ol_treasury_debt and ol_federal_contracts refuse an argument combination they used to ignore. Every change is listed in CHANGELOG.md.

3.8.3 (the previous cut). A patch release on 3.8.2: no tool or argument is added, renamed or removed. Fixed: in get_fundamentals' LongTermDebt series, a year the filer tags only the noncurrent portion now adds that year's LongTermDebtCurrent (us-gaap LongTermDebt's own definition) only where the filer's own tags prove the identity -- at least one year carries all three facts and every such year agrees -- and concepts names the composed cell; a filer's series can still mix composed and noncurrent-only years, and commercial paper and short-term borrowings are still never summed. Fixed: get_sec_filings refuses an unknown ticker or CIK (DATA_UNAVAILABLE) instead of answering an empty list as a success. Added: get_yield_curve carries unit: "percent".

3.8.2. A patch release on 3.8.1: no tool or argument is added, renamed or removed, and no data key is renamed or removed. Added: ol_bdc_top_borrowers rows keep fair_value_holders and inactive_holder_fair_value (how much of a merged-away lender's frozen mark was left out of the cross-holder sum). Fixed: the refusals that tell an operator where an API key is made pointed at an on-screen control the Oxford Ledge site has since removed; they now say "press K or open Settings -> API keys", the route the site and the hosted server name. Changed: the get_debt_maturities and get_capital_allocation description text names the tier "Researcher", the name on the pricing page; the [Tier: plus] prefix and the refusal keep plus, the tier key the API takes. Other allowlist changes in this cut govern the hosted server's anonymous answers, not this package (see CHANGELOG).

3.8.1. A patch release on 3.8.0: no tool, argument or data key is added, renamed or removed. Changed: every request this package sends to Oxford Ledge -- the REST proxy calls and both hosted-tool legs, with or without a key -- now names the package version in its User-Agent, OxfordLedgeMCP/1.0 (oxford-ledge-mcp 3.8.1) instead of the constant OxfordLedgeMCP/1.0, so a report about a call can be matched to the release that made it; the requests it sends to SEC EDGAR and FRED are unchanged. Changed: get_corporate_events carries one more entry in its tool_notes: an empty (or null) description is a filing whose text has not been read yet (not fetched, or it could not be extracted), never a filing that says nothing -- open sourceUrl to read it. Docs: this README now notes the official MCP Registry listing (above).

3.8.0. It also carries everything in the 3.7.2 cut described next, which was never published on its own -- upgrading from 3.7.1 gets both. Changed: every tool description is now a short card of at most 1,300 characters -- what the tool returns, its key arguments, its source and the one caveat to know before calling -- so a connected session spends far fewer tokens before its first call (the 29 descriptions went from about 70,900 to about 23,700 characters). The caveats that used to live in the descriptions now ride each response in a tool_notes list, placed near the head of the payload; licence, redistribution and refusal notices stay verbatim in the descriptions. Changed: response_size.over_budget now judges the data without tool_notes, while chars still reports the whole payload. No tool, argument or data key is renamed or removed.

3.7.2 (folded into 3.8.0, never published separately). The changes below landed between 3.7.1 and the 3.8.0 description change. Removed: amount and status on get_corporate_events -- no writer ever filled them, so they were always null. New keys this package passes: filedName on get_13f_holdings (the issuer name exactly as filed, present only when the served name differs); on get_holders, shares_outstanding_period (the fiscal period of the share count ownership percentages divide by) and other_class_rows_excluded (rows filed under another share class of the same company, left out of the totals); priceApplicable on get_insider_trades rows (false for gifts, awards and other codes filed at a price of 0 -- the filed 0 is kept); grossRepurchases per year and totalGrossRepurchases on get_capital_allocation (null when untagged; netBuybacks is unchanged and is a dilution proxy); last_ingested_at and parent_patent_number on ol_patents; fred_notice on get_fred_data and get_yield_curve (the FRED terms-of-use sentence). New arguments: limit and days on get_insider_trades; common_only (default true) and min_value on ol_insider_recent_buys. Host-side changes (an installed 3.7.1 sees them too): Class A and Class B holdings are no longer mixed (Berkshire Hathaway Class A positions had been served as Class B holders); get_corporate_events fills counterparty from the M&A reader when its confidence is at least 0.5 (labelled derived). BDC (MCP-D): ol_bdc_borrower_dispersion now returns one row per LENDER (limit counts lenders; the tranches are nested under tranches; new lender_count, tranche_count, lender_row_basis, par_amount, cost_amount; stale lenders are left out unless include_stale is true, reported as stale_lenders_excluded; count now counts lenders), and a row whose par mark sits well below its cost mark on a loan otherwise marked near cost carries mark_basis / mark_basis_note (a partly funded commitment) and no yield; get_bdc_holdings' parseQuality is suspect whenever the book's fair value is refused. Borrower descriptions: research-written descriptions are labelled as written by an AI model from public web sources and not checked for copying; descriptions whose research cited paywalled or restricted databases are no longer served (descriptionWithheld says why), and descriptionSources appears where the source was recorded.

3.7.1. Its changes from 3.7.0 are in MIGRATING.md. No tool, argument or key is renamed or removed, no argument changes, and nothing new is sent. Six keys the Oxford Ledge server already sends now pass this package's fail-closed emit filter (3.7.0 stripped them): fairValueGap / fairValueGapNote on get_bdc_list and get_bdc_holdings -- the label and sentence that say when a BDC's parsed-row total disagrees with the filing's own total by more than 5%, including the under-count case where totalFairValue understates the book; withheld / parser_dialect_version on ol_bdc_credit_quality -- why a covered non-accrual rate is null (coverage_state implausible: more than 25% of the determinate debt book flagged AND the flagged loans marked near par, a sign Oxford Ledge's parse misread the schedule; a rate above 25% on loans marked below 85, or with no mark on file to test, is stated as unusually_high -- check the filing) and which parser generation read the quarter; verbatim on get_value_investing_fact; and issuerSelfFiled on get_insider_trades and ol_insider_recent_buys -- true when the Form 4 was filed under the company's own SEC ID, so the reporting-owner field names the company, not a person (3.7.0 served those same rows unlabelled; Oxford Ledge never counts them in its own totals, and neither should yours). On get_insider_trades the key is absent, never false, when the host that answered does not send it. Descriptions corrected to the wire: a get_value_investing_fact entry paraphrases or summarises the named author's ideas in wording not verified against the source (some entries may repeat the author's own words), so it is not a verbatim quotation unless verbatim is true -- attribution is the credit line to use; ol_bdc_top_borrowers ranks on the ACTIVE lender count; ol_bdc_mark_changes names its fair_value_refused exclusion. **Host-side changes the descriptions

Only the beginning is shown; read the rest in the repo

Ask PopNx