Koskamo

foster-mcp MCP

Provides remote MCP tools for accessing TCMB exchange rates, calculating Turkish business days, and validating Turkish financial identifiers like IBANs and tax numbers.

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.

foster-mcp MCP logo, by foster-mcpCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by foster-mcp
MCP endpoint (Streamable HTTP)
https://foster-mcp.esakiz.workers.dev/mcp
Vendor documentation

What you can do with it

  • Retrieve latest or historical foreign exchange rates
  • Calculate business days and check holidays in Turkey
  • Validate Turkish IBANs, tax numbers, and national IDs

Source and maintenance

Community listingRegistry 1.0.0

Protocol and capabilities

Server
tcmb-exchange-rates 1.0.0
MCP protocol
2025-06-18
Tools
4 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools

4 advertised

get_latest_rates — Latest Turkish central bank exchange rates
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the most recent TCMB exchange-rate bulletin (TRY per unit of foreign currency). Source: Central Bank of the Republic of Türkiye (CBRT/TCMB) daily indicative bulletin, published on business days around 15:30 Türkiye time (UTC+3). Rates are TRY per `unit` of currency (JPY is per 100). Decimals are strings. Every result includes source_url, bulletin_date and a disclaimer; rates are indicative, not for official use.

get_latest_rates input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "currencies": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z]{3}$",
        "description": "ISO 4217 code, e.g. USD"
      },
      "maxItems": 50,
      "description": "Currency codes to include; omit for all (about 20 currencies)"
    }
  }
}
get_latest_rates output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "source",
    "source_url",
    "bulletin_date",
    "bulletin_no",
    "requested_date",
    "is_fallback",
    "fallback_reason",
    "domestic_currency",
    "retrieved_at",
    "rates",
    "disclaimer"
  ],
  "properties": {
    "rates": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "code",
          "name_tr",
          "name_en",
          "unit",
          "forex_buying",
          "forex_selling",
          "banknote_buying",
          "banknote_selling",
          "cross_rate_usd",
          "cross_rate_other"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "unit": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "name_en": {
            "type": "string"
          },
          "name_tr": {
            "type": "string"
          },
          "forex_buying": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "forex_selling": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "cross_rate_usd": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "banknote_buying": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "cross_rate_euro": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "banknote_selling": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "cross_rate_other": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "source": {
      "type": "string",
      "const": "TCMB"
    },
    "disclaimer": {
      "type": "string"
    },
    "source_url": {
      "type": "string",
      "format": "uri"
    },
    "bulletin_no": {
      "type": [
        "string",
        "null"
      ]
    },
    "is_fallback": {
      "type": "boolean"
    },
    "retrieved_at": {
      "type": "string"
    },
    "bulletin_date": {
      "type": "string"
    },
    "requested_date": {
      "type": [
        "string",
        "null"
      ]
    },
    "fallback_reason": {
      "anyOf": [
        {
          "enum": [
            "no_bulletin_weekend_or_holiday",
            "not_yet_published"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "domestic_currency": {
      "enum": [
        "TRY",
        "TRL"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_latest_rates annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_rates_on_date — Turkish central bank exchange rates on a date
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the TCMB bulletin published on a given date (history back to 1996). If no bulletin was published that day (weekend, holiday, or today before ~15:30 TRT), returns the previous bulletin with is_fallback=true and a fallback_reason. Bulletins before 2005-01-01 are in old Turkish lira (domestic_currency TRL). Source: Central Bank of the Republic of Türkiye (CBRT/TCMB) daily indicative bulletin, published on business days around 15:30 Türkiye time (UTC+3). Rates are TRY per `unit` of currency (JPY is per 100). Decimals are strings. Every result includes source_url, bulletin_date and a disclaimer; rates are indicative, not for official use.

get_rates_on_date input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "date"
  ],
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Bulletin date, YYYY-MM-DD"
    },
    "currencies": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z]{3}$",
        "description": "ISO 4217 code, e.g. USD"
      },
      "maxItems": 50,
      "description": "Currency codes to include; omit for all (about 20 currencies)"
    }
  }
}
get_rates_on_date output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "source",
    "source_url",
    "bulletin_date",
    "bulletin_no",
    "requested_date",
    "is_fallback",
    "fallback_reason",
    "domestic_currency",
    "retrieved_at",
    "rates",
    "disclaimer"
  ],
  "properties": {
    "rates": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "code",
          "name_tr",
          "name_en",
          "unit",
          "forex_buying",
          "forex_selling",
          "banknote_buying",
          "banknote_selling",
          "cross_rate_usd",
          "cross_rate_other"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "unit": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "name_en": {
            "type": "string"
          },
          "name_tr": {
            "type": "string"
          },
          "forex_buying": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "forex_selling": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "cross_rate_usd": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "banknote_buying": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "cross_rate_euro": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "banknote_selling": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "cross_rate_other": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "source": {
      "type": "string",
      "const": "TCMB"
    },
    "disclaimer": {
      "type": "string"
    },
    "source_url": {
      "type": "string",
      "format": "uri"
    },
    "bulletin_no": {
      "type": [
        "string",
        "null"
      ]
    },
    "is_fallback": {
      "type": "boolean"
    },
    "retrieved_at": {
      "type": "string"
    },
    "bulletin_date": {
      "type": "string"
    },
    "requested_date": {
      "type": [
        "string",
        "null"
      ]
    },
    "fallback_reason": {
      "anyOf": [
        {
          "enum": [
            "no_bulletin_weekend_or_holiday",
            "not_yet_published"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "domestic_currency": {
      "enum": [
        "TRY",
        "TRL"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_rates_on_date annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
convert_currency — Convert currency with TCMB rates
Advertised by the server during the last successful anonymous check.
Advertised read-only

Converts an amount between two currencies using TCMB rates. TRY may be either side. Cross conversions (e.g. USD to EUR) go through TRY using the same rate_type on both legs. Returns the result (6 decimals), the effective rate and a calculation breakdown. Omit date for the latest bulletin. Source: Central Bank of the Republic of Türkiye (CBRT/TCMB) daily indicative bulletin, published on business days around 15:30 Türkiye time (UTC+3). Rates are TRY per `unit` of currency (JPY is per 100). Decimals are strings. Every result includes source_url, bulletin_date and a disclaimer; rates are indicative, not for official use.

convert_currency input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "from",
    "to",
    "amount"
  ],
  "properties": {
    "to": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "Target currency, ISO 4217 (TRY allowed)"
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Bulletin date, YYYY-MM-DD"
    },
    "from": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "Source currency, ISO 4217 (TRY allowed)"
    },
    "amount": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "number",
          "exclusiveMinimum": 0
        }
      ],
      "description": "Positive amount; a string like \"1234.56\" preserves precision"
    },
    "rate_type": {
      "enum": [
        "forex_buying",
        "forex_selling",
        "banknote_buying",
        "banknote_selling"
      ],
      "type": "string",
      "default": "forex_selling",
      "description": "TCMB rate to use. forex_* are for transfers, banknote_* for cash; some currencies lack banknote rates."
    }
  }
}
convert_currency output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "source",
    "source_url",
    "bulletin_date",
    "bulletin_no",
    "requested_date",
    "is_fallback",
    "fallback_reason",
    "domestic_currency",
    "retrieved_at",
    "query",
    "result",
    "rate",
    "calculation",
    "disclaimer"
  ],
  "properties": {
    "rate": {
      "type": "string",
      "pattern": "^\\d+(\\.\\d+)?$"
    },
    "query": {
      "type": "object",
      "required": [
        "from",
        "to",
        "amount",
        "rate_type"
      ],
      "properties": {
        "to": {
          "type": "string"
        },
        "from": {
          "type": "string"
        },
        "amount": {
          "type": "string"
        },
        "rate_type": {
          "enum": [
            "forex_buying",
            "forex_selling",
            "banknote_buying",
            "banknote_selling"
          ],
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "result": {
      "type": "string",
      "pattern": "^\\d+(\\.\\d+)?$"
    },
    "source": {
      "type": "string",
      "const": "TCMB"
    },
    "disclaimer": {
      "type": "string"
    },
    "source_url": {
      "type": "string",
      "format": "uri"
    },
    "bulletin_no": {
      "type": [
        "string",
        "null"
      ]
    },
    "calculation": {
      "type": "object",
      "required": [
        "rate_type",
        "via",
        "legs",
        "formula",
        "note",
        "rounding"
      ],
      "properties": {
        "via": {
          "enum": [
            "TRY",
            "TRL"
          ],
          "type": "string"
        },
        "legs": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "currency",
              "rate",
              "unit",
              "quote"
            ],
            "properties": {
              "rate": {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$"
              },
              "unit": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              "quote": {
                "type": "string"
              },
              "currency": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "note": {
          "type": "string"
        },
        "formula": {
          "type": "string"
        },
        "rounding": {
          "type": "string"
        },
        "rate_type": {
          "enum": [
            "forex_buying",
            "forex_selling",
            "banknote_buying",
            "banknote_selling"
          ],
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "is_fallback": {
      "type": "boolean"
    },
    "retrieved_at": {
      "type": "string"
    },
    "bulletin_date": {
      "type": "string"
    },
    "requested_date": {
      "type": [
        "string",
        "null"
      ]
    },
    "fallback_reason": {
      "anyOf": [
        {
          "enum": [
            "no_bulletin_weekend_or_holiday",
            "not_yet_published"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "domestic_currency": {
      "enum": [
        "TRY",
        "TRL"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
convert_currency annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_currencies — List currencies in TCMB bulletins
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists currencies in the latest TCMB bulletin with English/Turkish names, quoting unit and which rate types are published for each. Use it to check codes before calling the other tools.

list_currencies input schema
{
  "type": "object",
  "properties": {}
}
list_currencies output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "source",
    "as_of_bulletin",
    "domestic_currency",
    "currencies",
    "notes",
    "disclaimer"
  ],
  "properties": {
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "source": {
      "type": "string",
      "const": "TCMB"
    },
    "currencies": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "code",
          "name_en",
          "name_tr",
          "unit",
          "rate_types"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "unit": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "name_en": {
            "type": "string"
          },
          "name_tr": {
            "type": "string"
          },
          "rate_types": {
            "type": "array",
            "items": {
              "enum": [
                "forex_buying",
                "forex_selling",
                "banknote_buying",
                "banknote_selling"
              ],
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      }
    },
    "disclaimer": {
      "type": "string"
    },
    "as_of_bulletin": {
      "type": "string"
    },
    "domestic_currency": {
      "enum": [
        "TRY",
        "TRL"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
list_currencies annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

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
293 ms
95th percentile latency
293 ms

Maintenance history

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

  • · probe · passed · 293 ms · metadata changed · 4 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 foster-mcp-mcp https://foster-mcp.esakiz.workers.dev/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 foster-mcp-mcp --url https://foster-mcp.esakiz.workers.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable foster-mcp-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "foster-mcp-mcp": {
      "url": "https://foster-mcp.esakiz.workers.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "foster-mcp-mcp": {
      "type": "streamableHttp",
      "url": "https://foster-mcp.esakiz.workers.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start foster-mcp-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "foster-mcp-mcp": {
      "type": "http",
      "url": "https://foster-mcp.esakiz.workers.dev/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 foster-mcp-mcp https://foster-mcp.esakiz.workers.dev/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "foster-mcp-mcp": {
      "url": "https://foster-mcp.esakiz.workers.dev/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": {
    "foster-mcp-mcp": {
      "serverUrl": "https://foster-mcp.esakiz.workers.dev/mcp"
    }
  }
}

Let your agent find its tools

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