Koskamo

OptimaYield MCP

A remote MCP server exposing free US bank regulatory tools, including bank directory lookups, deposit market analysis, peer comparisons, and rate-shock calculators, allowing AI agents to access FDIC and FFIEC derived data without authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

OptimaYield MCP logo, by OptimaYieldVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by OptimaYield
MCP endpoint (Streamable HTTP)
https://www.optimayield.com/api/mcp
Vendor documentation

What its tools do

7 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

7 of 7 have a description · 7 of 7 declare behavior hints · 7 of 7 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to optimayield.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Look up US bank regulatory facts and financials
  • Run rate-shock and margin calculators
  • Compare peer institutions side-by-side
  • Analyze deposit market share trends

Source and maintenance

Vendor evidenceRegistry 1.1.0

Protocol and capabilities

Server
optimayield-bank-tools 1.1.0
MCP protocol negotiated in check
2025-06-18
Tools
7 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Free calculators and reports for bank treasury, CFO, and ALCO staff, computed from FFIEC Call Report filings. Every tool takes an FDIC certificate number. Results state whether each number is filed, derived, or assumed, and include limitations; relay them when you summarize.

Tools

7 advertised

search_banks — Find a bank's FDIC certificate number
Advertised by the server during the last successful anonymous check.
Advertised read-only

Look up a US bank by name (legal or common, e.g. "Chase", "state street") and return its FDIC certificate number, city, state and total assets. Use this first: every other tool needs the certificate. Optionally narrow by two-letter state.

search_banks input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1,
      "description": "Maximum results."
    },
    "query": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Bank name, or words from it; a city name also matches."
    },
    "state": {
      "type": "string",
      "description": "Two-letter state code to narrow the search, e.g. MA."
    }
  },
  "additionalProperties": false
}
search_banks annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_bank_profile — Bank profile: size, capital, margin, liquidity
Advertised by the server during the last successful anonymous check.
Advertised read-only

Headline profile for one bank from its latest Call Report data: identity, total assets, deposits, loans, ROA, ROE, net interest margin, capital, liquidity and credit ratios, with the reporting period and source. Units are stated on every value.

get_bank_profile input schema
{
  "type": "object",
  "required": [
    "certificate"
  ],
  "properties": {
    "certificate": {
      "type": "integer",
      "minimum": 1,
      "description": "FDIC certificate number of the bank (from search_banks)."
    }
  },
  "additionalProperties": false
}
get_bank_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
nim_rate_shock — Net interest income rate-shock calculator
Advertised by the server during the last successful anonymous check.
Advertised read-only

Estimate how a Fed funds move changes a bank's loan yield, deposit cost, and net interest income, using its own filed pass-through history. Free; computed from FFIEC filings; results state whether each number is filed, derived, or assumed.

nim_rate_shock input schema
{
  "type": "object",
  "required": [
    "certificate"
  ],
  "properties": {
    "regime": {
      "enum": [
        "auto",
        "hike_2022_23",
        "hike_2017_19",
        "ease_2019_20",
        "ease_2024_26",
        "intervals"
      ],
      "type": "string",
      "default": "auto",
      "description": "Which past rate cycle supplies the loan and deposit betas. Automatic is right for most uses."
    },
    "fedMoveBp": {
      "type": "number",
      "x-step": 25,
      "x-unit": "basis_points",
      "default": -100,
      "maximum": 400,
      "minimum": -400,
      "description": "Parallel change in the Fed funds rate, in basis points. Negative is a cut."
    },
    "certificate": {
      "type": "integer",
      "minimum": 1,
      "description": "FDIC certificate number of the bank."
    },
    "loanBetaOverride": {
      "type": [
        "number",
        "null"
      ],
      "x-step": 0.05,
      "x-unit": "ratio",
      "default": null,
      "maximum": 1.5,
      "minimum": -0.25,
      "description": "Replace the derived loan beta with your own assumption. Leave empty to use the filed history."
    },
    "depositBetaOverride": {
      "type": [
        "number",
        "null"
      ],
      "x-step": 0.05,
      "x-unit": "ratio",
      "default": null,
      "maximum": 1.5,
      "minimum": -0.25,
      "description": "Replace the derived deposit beta with your own assumption. Leave empty to use the filed history."
    }
  },
  "additionalProperties": false
}
nim_rate_shock annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
margin_capture — Margin capture report: loan beta versus deposit beta
Advertised by the server during the last successful anonymous check.
Advertised read-only

Compare a bank's loan beta with its deposit beta and rank the spread against its asset-band peers, from FFIEC filings. Free; computed from FFIEC filings; results state whether each number is filed, derived, or assumed.

margin_capture input schema
{
  "type": "object",
  "required": [
    "certificate"
  ],
  "properties": {
    "cycle": {
      "enum": [
        "hike_2022_23",
        "ease_2019_20",
        "ease_2024_26",
        "hike_2017_19",
        "interval_up",
        "interval_down",
        "interval_full"
      ],
      "type": "string",
      "default": "hike_2022_23",
      "description": "Which past rate cycle the loan and deposit betas are measured over. Both betas use the same cycle so they are comparable."
    },
    "certificate": {
      "type": "integer",
      "minimum": 1,
      "description": "FDIC certificate number of the bank."
    }
  },
  "additionalProperties": false
}
margin_capture annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
maturity_wall_refinancing — Maturity wall refinancing calculator
Advertised by the server during the last successful anonymous check.
Advertised read-only

Measure time deposits maturing or repricing within a year, then test explicit renewal and replacement assumptions against tier-specific costs. Free; computed from FFIEC filings; results state whether each number is filed, derived, or assumed.

maturity_wall_refinancing input schema
{
  "type": "object",
  "required": [
    "certificate"
  ],
  "properties": {
    "certificate": {
      "type": "integer",
      "minimum": 1,
      "description": "FDIC certificate number of the bank."
    },
    "retentionPercent": {
      "type": "number",
      "x-step": 5,
      "x-unit": "percent",
      "default": 80,
      "maximum": 100,
      "minimum": 0,
      "description": "How much of the time deposits maturing within 12 months stay with the bank. The rest runs off and is replaced with other funding."
    },
    "wholesaleSpreadBp": {
      "type": "number",
      "x-step": 5,
      "x-unit": "basis_points",
      "default": 25,
      "maximum": 300,
      "minimum": 0,
      "description": "What you would pay above the Fed funds rate to replace deposits that run off, in basis points."
    },
    "renewalRatePercent": {
      "type": [
        "number",
        "null"
      ],
      "x-step": 0.05,
      "x-unit": "percent",
      "default": null,
      "maximum": 15,
      "minimum": 0,
      "description": "The rate you expect to pay on renewing time deposits. Leave empty to use the current Fed funds rate as a reference; the scenario table shows other reference rates."
    }
  },
  "additionalProperties": false
}
maturity_wall_refinancing annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
deposit_pricing_decision — Deposit pricing decision: Defend, Match, or Lead
Advertised by the server during the last successful anonymous check.
Advertised read-only

Price holding, matching, or beating the market rate on a bank's deposits: annual cost, balances at risk, breakeven retention, and sensitivity. Free; computed from FFIEC filings; results state whether each number is filed, derived, or assumed.

deposit_pricing_decision input schema
{
  "type": "object",
  "required": [
    "certificate"
  ],
  "properties": {
    "category": {
      "enum": [
        "transaction",
        "savings",
        "time_small",
        "time_large"
      ],
      "type": "string",
      "default": "savings",
      "description": "Which filed deposit category the pricing decision applies to. Balances and current cost come from the bank's Call Report."
    },
    "certificate": {
      "type": "integer",
      "minimum": 1,
      "description": "FDIC certificate number of the bank."
    },
    "leadPremiumBp": {
      "type": "number",
      "x-step": 5,
      "x-unit": "basis_points",
      "default": 25,
      "maximum": 200,
      "minimum": 0,
      "description": "How far above the market rate the Lead option prices, in basis points. A starting value to replace with your own."
    },
    "marketRatePercent": {
      "type": [
        "number",
        "null"
      ],
      "x-step": 0.05,
      "x-unit": "percent",
      "default": null,
      "maximum": 15,
      "minimum": 0,
      "description": "The rate competitors pay for this product. Leave empty to use the FDIC national average for the product as a reference; that average is usually well below competitive offers, so enter your own market rate when you have one."
    },
    "replacementSpreadBp": {
      "type": "number",
      "x-step": 5,
      "x-unit": "basis_points",
      "default": 25,
      "maximum": 300,
      "minimum": 0,
      "description": "What it costs, above the Fed funds rate, to replace balances that leave, in basis points."
    },
    "repricedSharePercent": {
      "type": "number",
      "x-step": 1,
      "x-unit": "percent",
      "default": 100,
      "maximum": 100,
      "minimum": 1,
      "description": "The part of the category balance whose rate changes under Match or Lead. For time deposits, use the share maturing soon (see the maturity wall calculator)."
    },
    "baselineRunoffPercent": {
      "type": "number",
      "x-step": 1,
      "x-unit": "percent",
      "default": 5,
      "maximum": 50,
      "minimum": 0,
      "description": "The share of the repriced balances that leaves within a year even when your rate matches the market. Your assumption, not a filed figure; a starting value to replace."
    },
    "runoffPerPointPercent": {
      "type": "number",
      "x-step": 1,
      "x-unit": "percent",
      "default": 10,
      "maximum": 100,
      "minimum": 0,
      "description": "The additional share of balances lost for every 100 basis points your rate sits below the market, and recovered for every 100bp above it. This is the elasticity assumption that drives the decision; the sensitivity table shows how the answer changes with it."
    }
  },
  "additionalProperties": false
}
deposit_pricing_decision annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
loss_reserve_scenario — Loss and reserve scenario: charge-offs, provision, and capital
Advertised by the server during the last successful anonymous check.
Advertised read-only

Stress a bank's net charge-offs: provision needed to hold its allowance ratio and the after-tax hit to CET1 or leverage capital, with peers. Free; computed from FFIEC filings; results state whether each number is filed, derived, or assumed.

loss_reserve_scenario input schema
{
  "type": "object",
  "required": [
    "certificate"
  ],
  "properties": {
    "certificate": {
      "type": "integer",
      "minimum": 1,
      "description": "FDIC certificate number of the bank."
    },
    "reserveBuildBp": {
      "type": "number",
      "x-step": 5,
      "x-unit": "basis_points",
      "default": 0,
      "maximum": 300,
      "minimum": -100,
      "description": "How much the bank lets its allowance ratio change, in basis points of loans. Zero holds today's allowance-to-loans ratio, which is the base case; a positive number models a reserve build as conditions deteriorate."
    },
    "taxRatePercent": {
      "type": "number",
      "x-step": 1,
      "x-unit": "percent",
      "default": 21,
      "maximum": 50,
      "minimum": 0,
      "description": "The tax shield on the provision. 21% is the U.S. federal statutory corporate rate, used as a starting reference; add state tax or set to zero if the bank cannot use the shield."
    },
    "loanGrowthPercent": {
      "type": "number",
      "x-step": 1,
      "x-unit": "percent",
      "default": 0,
      "maximum": 50,
      "minimum": -20,
      "description": "Growth in loans over the stress year. Growth raises the allowance needed to hold the ratio; it does not change the charge-off dollars, which are based on today's loans."
    },
    "capitalFloorPercent": {
      "type": [
        "number",
        "null"
      ],
      "x-step": 0.5,
      "x-unit": "percent",
      "default": null,
      "maximum": 30,
      "minimum": 0,
      "description": "The capital ratio to measure headroom against. Leave empty to use 7.0% for a CET1 ratio (the 4.5% minimum plus the 2.5% conservation buffer) or 5.0% for a Tier 1 leverage ratio (well capitalized). Community banks that elected the leverage framework may use 9%."
    },
    "stressNcoRatePercent": {
      "type": [
        "number",
        "null"
      ],
      "x-step": 0.05,
      "x-unit": "percent",
      "default": null,
      "maximum": 15,
      "minimum": 0,
      "description": "The annual net charge-off rate to stress, as a share of loans. Leave empty to use the 90th percentile rate among banks in the same asset band as a labelled reference; enter your own for a specific scenario."
    },
    "earningsOffsetPercent": {
      "type": "number",
      "x-step": 5,
      "x-unit": "percent",
      "default": 0,
      "maximum": 100,
      "minimum": 0,
      "description": "The part of the provision covered by pre-provision earnings before it reaches capital. Zero is the conservative case: every dollar of provision reduces capital."
    }
  },
  "additionalProperties": false
}
loss_reserve_scenario annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (2 of 2 answered).

  1. 2026-11-07: 1 of 1 checks answered
  2. 2026-11-09: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1757 ms
95th percentile latency
1757 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1757 ms · metadata changed · 7 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http optimayield-mcp https://www.optimayield.com/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add optimayield-mcp --url https://www.optimayield.com/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable optimayield-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "optimayield-mcp": {
      "url": "https://www.optimayield.com/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "optimayield-mcp": {
      "type": "streamableHttp",
      "url": "https://www.optimayield.com/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start optimayield-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "optimayield-mcp": {
      "type": "http",
      "url": "https://www.optimayield.com/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http optimayield-mcp https://www.optimayield.com/api/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://www.optimayield.com/api/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "optimayield-mcp": {
      "serverUrl": "https://www.optimayield.com/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like OptimaYield MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run OptimaYield MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing