@moonbanking/mcp-server
v1.5.1
Published
# Welcome to the Moon Banking API! Enjoy the documentation and happy coding. Share this spec with your LLM of choice to speed up your development, or take a look at our MCP server and various SDKs. ### More information For more information about the Mo
Downloads
253
Maintainers
Readme
Moon Banking MCP Server
Moon Banking is a global directory of consumer and business banks with structured, community-rated scores across 14 categories — customer service, fees & pricing, digital experience, crypto friendliness, security & trust, lending, business banking, international banking, transparency, and more. The Moon Banking MCP server exposes that entire dataset — every bank, country, score, vote, and user story — as live tools your AI agent can call, so answers about real-world banking are grounded in fresh Moon Banking data instead of stale training-set guesses.
Once connected, you can ask questions like "which crypto-friendly banks operate in Brazil?", "compare digital-experience scores for the top US challenger banks", or "summarize recent user stories about fees at HSBC UK" and get tool-grounded, citable answers backed by the same data that powers moonbanking.com.
The server is generated from the public OpenAPI specification and ships as both a hosted OAuth endpoint at https://mcp.moonbanking.com/mcp and a stdio npm package (@moonbanking/mcp-server) — so you can connect it to Claude, Cursor, Grok, ChatGPT, VS Code, Windsurf, Zed, and any other Model Context Protocol client.
Client-specific setup guides
If you just want to wire Moon Banking up to a specific client, jump straight to its guide. Each one covers both the hosted OAuth setup and the self-hosted stdio fallback.
| Client | Guide | | --- | --- | | Claude (Desktop & web) | claude | | Claude Code | claude-code | | Cursor | cursor | | Windsurf | windsurf | | VS Code (GitHub Copilot) | vscode | | Zed | zed | | ChatGPT | chatgpt | | Grok (xAI) | grok | | MCP Inspector (testing) | mcp-inspector |
The rest of this README covers the underlying authentication options and configuration shapes.
Authentication
You can connect to Moon Banking over MCP using either of two auth methods:
| Method | Best for | API key required? | | --- | --- | --- | | Hosted OAuth server (recommended) | Claude, Cursor, Grok, ChatGPT, and any MCP client that supports remote/streamable HTTP MCP. Users sign in to Moon Banking in a browser — no key handling. | No | | Self-hosted stdio package (this npm package) | Local scripts, agents, or clients that only support stdio MCP. | Yes |
Both methods expose the same tool surface; pick whichever matches your client.
Hosted MCP server (OAuth)
URL: https://mcp.moonbanking.com/mcp (Streamable HTTP, OAuth 2.0 with Dynamic Client Registration).
Most modern MCP clients can connect by simply pointing at the URL — they will pop a browser window for the user to sign in to Moon Banking and obtain an access token automatically. No API key is exchanged or stored on the client side.
{
"mcpServers": {
"moonbanking": {
"url": "https://mcp.moonbanking.com/mcp"
}
}
}For clients that don't yet speak remote MCP natively (eg. older ChatGPT configurations), the mcp-remote bridge can wrap the hosted endpoint as a stdio command:
{
"mcpServers": {
"moonbanking": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.moonbanking.com/mcp"]
}
}
}Self-hosted (API key)
If you prefer to run the MCP server locally as a stdio process — for example to embed it in an automation that doesn't have a browser available for OAuth — install this npm package and authenticate with a Moon Banking API key.
Direct invocation
You can run the MCP Server directly via npx:
export MOON_BANKING_API_KEY="Bearer mb_sk_..."
npx -y @moonbanking/mcp-serverVia MCP Client
There is a partial list of existing clients at modelcontextprotocol.io. If you already have a client, consult their documentation to install the MCP server.
For clients with a configuration JSON, it might look something like this:
{
"mcpServers": {
"moonbanking-mcp": {
"command": "npx",
"args": ["-y", "@moonbanking/mcp-server"],
"env": {
"MOON_BANKING_API_KEY": "Bearer mb_sk_..."
}
}
}
}Filter Specific Tools
You can limit which tools are exposed by using the --tool flag:
npx @moonbanking/mcp-server --tool=tool1 --tool=tool2Available Tools
bank_getByHostname: This endpoint allows you to retrieve banks by hostname. It will return up to one bank per country that matches the provided hostname. The hostname is normalized (www. prefix removed if present) and matched against both the primary hostname and alternative hostnames.bank_get: This endpoint allows you to retrieve a paginated list of all banks. By default, a maximum of ten banks are shown per page. You can search banks by name, filter by country, sort them by various fields, and include related data like scores and country information.bank_getById: This endpoint allows you to retrieve a specific bank by providing the bank ID. You can include related data like scores and country information in the response.bank_semanticSearch: Search for banks by describing what you are looking for in natural language. This searches across bank descriptions including services offered, history, location, unique features, and institution type. Use this when the user asks about banks with specific characteristics, services, or qualities.bankVote_get: This endpoint allows you to retrieve a paginated list of bank votes. You can filter by bank ID, category, country, vote type (upvote or downvote), and other parameters.country_get: This endpoint allows you to retrieve a paginated list of all countries. By default, a maximum of ten countries are shown per page. You can search countries by name or 2-letter code, sort them by various fields, and include related data like scores.country_getByCountryCode: This endpoint allows you to retrieve a specific country by providing the 2-letter ISO country code. You can include related data like scores in the response.story_get: This endpoint allows you to retrieve a paginated list of all stories. By default, a maximum of ten stories are shown per page. You can search stories by text content, filter by bank ID, sort them by various fields, and include related data like bank and country information.story_getById: This endpoint allows you to retrieve a specific story by providing the story ID. You can include related data like bank and country information in the response.world_getOverview: This endpoint allows you to retrieve global overview data that aggregates banks votes, stories and other data across all banks in all countries. You can include related data like scores in the response.search_get: Search across banks, countries, and stories. You can specify which entities to search using the include parameter. If no include value is provided, all entities will be searched.
License
MIT
