@moonbanking/mcp-server 1.2.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -169,39 +169,124 @@ jobs:
169
169
  token: ${{ secrets.SYNC_DOCS_TOKEN }}
170
170
  path: moonbanking
171
171
 
172
- - name: Update documentation
172
+ - name: Update main MCP documentation
173
+ shell: bash
173
174
  run: |
174
175
  # Create the target directory if it doesn't exist
175
176
  mkdir -p moonbanking/apps/docs/app/mcp
176
-
177
+
177
178
  # Create the new content with prepended metadata
178
179
  cat > moonbanking/apps/docs/app/mcp/page.mdx << 'EOF'
179
- {/*
180
- DO NOT EDIT THIS FILE DIRECTLY!
181
-
180
+ {/*
181
+ DO NOT EDIT THIS FILE DIRECTLY!
182
+
182
183
  It is automatically generated by the npm-publish GitHub Action in
183
184
  the moonbanking/mcp-server repository.
184
185
  */}
185
-
186
+
186
187
  export const metadata = {
187
188
  title: `MCP`,
188
189
  description: `Create AI agents using Moon Banking's MCP server. Get high-quality data about banks worldwide from your favorite LLM platform with Moon Banking's MCP.`,
189
190
  };
190
-
191
- <ApiKeyNote featureName="MCP" />
192
-
191
+
193
192
  EOF
194
-
193
+
195
194
  # Append the README content
196
195
  cat mcp-server/README.md >> moonbanking/apps/docs/app/mcp/page.mdx
197
-
198
- echo "✅ Documentation updated"
196
+
197
+ # Rewrite GitHub-relative markdown links so they resolve to docs-app routes:
198
+ # ./README.md → /mcp
199
+ # ./<slug>.md → /<slug>
200
+ # Also handles the bare-form variants (without `./`).
201
+ sed -i -E \
202
+ -e 's#\]\((\./)?README\.md\)#](/mcp)#g' \
203
+ -e 's#\]\((\./)?([A-Za-z][A-Za-z0-9-]*)\.md\)#](/\2)#g' \
204
+ moonbanking/apps/docs/app/mcp/page.mdx
205
+
206
+ echo "✅ Main MCP documentation updated"
207
+
208
+ - name: Update platform documentation
209
+ shell: bash
210
+ run: |
211
+ # Sync each per-platform doc page (e.g. mcp-server/cursor.md, which
212
+ # lives at the package root alongside README.md) into the docs app
213
+ # as a TOP-LEVEL route (apps/docs/app/cursor/page.mdx).
214
+ # Title + description are parsed from the markdown file itself, so
215
+ # adding a new platform in the moonbanking monorepo generator
216
+ # automatically flows through this workflow with no further edits.
217
+
218
+ shopt -s nullglob
219
+ synced=0
220
+
221
+ # Files we should NOT treat as platform docs even if they end in .md.
222
+ skip_regex='^(README|CHANGELOG|LICENSE|CONTRIBUTING|CODE_OF_CONDUCT|SECURITY)$'
223
+
224
+ for src in mcp-server/*.md; do
225
+ slug="$(basename "$src" .md)"
226
+
227
+ # Skip non-platform markdown at the package root.
228
+ if [[ "$slug" =~ $skip_regex ]]; then
229
+ echo "↪︎ Skipping $slug.md (non-platform file)"
230
+ continue
231
+ fi
232
+
233
+ # Extract `<Name>` from `# Moon Banking MCP for <Name>` (first H1).
234
+ title="$(sed -n 's/^# Moon Banking MCP for \(.*\)$/\1/p' "$src" | head -n1)"
235
+ # Extract description from the first `> ...` blockquote line.
236
+ description="$(sed -n 's/^> \(.*\)$/\1/p' "$src" | head -n1)"
237
+
238
+ # If the file doesn't look like a platform doc, bail rather than
239
+ # publish a malformed docs page.
240
+ if [ -z "$title" ]; then
241
+ echo "⚠️ ${slug}.md does not look like a platform doc (no '# Moon Banking MCP for ...' H1) — skipping."
242
+ continue
243
+ fi
244
+
245
+ if [ -z "$description" ]; then
246
+ description="Connect ${title} to the Moon Banking MCP server."
247
+ fi
248
+
249
+ dest_dir="moonbanking/apps/docs/app/$slug"
250
+ mkdir -p "$dest_dir"
251
+ dest="$dest_dir/page.mdx"
252
+
253
+ {
254
+ echo '{/*'
255
+ echo ' DO NOT EDIT THIS FILE DIRECTLY!'
256
+ echo ''
257
+ echo ' It is automatically generated by the npm-publish GitHub Action in'
258
+ echo ' the moonbanking/mcp-server repository.'
259
+ echo '*/}'
260
+ echo ''
261
+ echo 'export const metadata = {'
262
+ echo " title: \`MCP — ${title}\`,"
263
+ echo " description: \`${description}\`,"
264
+ echo '};'
265
+ echo ''
266
+ } > "$dest"
267
+
268
+ cat "$src" >> "$dest"
269
+
270
+ # Rewrite GitHub-relative markdown links so they resolve to
271
+ # docs-app routes:
272
+ # ./README.md → /mcp
273
+ # ./<slug>.md → /<slug>
274
+ sed -i -E \
275
+ -e 's#\]\((\./)?README\.md\)#](/mcp)#g' \
276
+ -e 's#\]\((\./)?([A-Za-z][A-Za-z0-9-]*)\.md\)#](/\2)#g' \
277
+ "$dest"
278
+
279
+ echo "✅ Synced ${slug}.md → apps/docs/app/${slug}/page.mdx"
280
+ synced=$((synced + 1))
281
+ done
282
+
283
+ echo "📚 ${synced} platform docs synced"
199
284
 
200
285
  - name: Check for changes
201
286
  id: check_changes
202
287
  run: |
203
288
  cd moonbanking
204
- if git diff --quiet apps/docs/app/mcp/page.mdx; then
289
+ if [ -z "$(git status --porcelain apps/docs/app/)" ]; then
205
290
  echo "has_changes=false" >> $GITHUB_OUTPUT
206
291
  echo "ℹ️ No changes detected in documentation"
207
292
  else
@@ -221,16 +306,29 @@ jobs:
221
306
  title: 'docs: sync MCP documentation v${{ needs.publish.outputs.version }}'
222
307
  body: |
223
308
  ## 🔄 Automated Documentation Sync
224
-
309
+
225
310
  This PR automatically syncs the MCP server documentation from the [mcp-server repository](https://github.com/moonbanking/mcp-server).
226
-
311
+
227
312
  **Version:** v${{ needs.publish.outputs.version }}
228
- **Source:** README.md from mcp-server
229
- **Target:** apps/docs/app/mcp/page.mdx
230
-
313
+
314
+ ### Sources → targets
315
+
316
+ | Source (mcp-server root) | Target (moonbanking docs) |
317
+ | --- | --- |
318
+ | `README.md` | `apps/docs/app/mcp/page.mdx` |
319
+ | `<slug>.md` (cursor, claude, …) | `apps/docs/app/<slug>/page.mdx` (top-level route, one per MCP client) |
320
+
321
+ ### Link rewriting
322
+
323
+ GitHub-relative markdown links inside the source files are rewritten at sync time so they resolve to docs-app routes:
324
+
325
+ - `./README.md` → `/mcp`
326
+ - `./<slug>.md` → `/<slug>`
327
+
231
328
  ### Changes
232
- - Updated MCP documentation with latest content from mcp-server v${{ needs.publish.outputs.version }}
233
-
329
+ - Updated main MCP documentation with latest content from mcp-server v${{ needs.publish.outputs.version }}
330
+ - Synced per-platform setup guides (Claude, Cursor, Grok, ChatGPT, VS Code, Windsurf, Zed, Claude Code, MCP Inspector, …) to their own top-level docs pages
331
+
234
332
  ---
235
333
  *This PR was automatically created by the npm-publish GitHub Action*
236
334
  labels: |
@@ -245,12 +343,13 @@ jobs:
245
343
  echo "Created pull request to sync MCP documentation to getfullup/moonbanking repository." >> $GITHUB_STEP_SUMMARY
246
344
  echo "" >> $GITHUB_STEP_SUMMARY
247
345
  echo "**Version:** v${{ needs.publish.outputs.version }}" >> $GITHUB_STEP_SUMMARY
248
- echo "**Target File:** apps/docs/app/mcp/page.mdx" >> $GITHUB_STEP_SUMMARY
346
+ echo "**Targets:**" >> $GITHUB_STEP_SUMMARY
347
+ echo "- apps/docs/app/mcp/page.mdx (main MCP page from README.md)" >> $GITHUB_STEP_SUMMARY
348
+ echo "- apps/docs/app/<slug>/page.mdx (one per platform, from <slug>.md at package root)" >> $GITHUB_STEP_SUMMARY
249
349
  else
250
350
  echo "## ℹ️ No Documentation Changes" >> $GITHUB_STEP_SUMMARY
251
351
  echo "" >> $GITHUB_STEP_SUMMARY
252
352
  echo "Documentation is already up to date. No pull request created." >> $GITHUB_STEP_SUMMARY
253
353
  echo "" >> $GITHUB_STEP_SUMMARY
254
354
  echo "**Version:** v${{ needs.publish.outputs.version }}" >> $GITHUB_STEP_SUMMARY
255
- echo "**Target File:** apps/docs/app/mcp/page.mdx" >> $GITHUB_STEP_SUMMARY
256
- fi
355
+ fi
package/README.md CHANGED
@@ -1,8 +1,72 @@
1
1
  # Moon Banking MCP Server
2
2
 
3
- The Moon Banking MCP server is generated from the [OpenAPI specification](https://github.com/moonbanking/moonbanking-openapi).
3
+ 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.
4
4
 
5
- ## Installation
5
+ 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](https://moonbanking.com).
6
+
7
+ The server is generated from the public [OpenAPI specification](https://github.com/moonbanking/moonbanking-openapi) 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, Devin Desktop (formerly Windsurf), Zed, and any other [Model Context Protocol](https://modelcontextprotocol.io) client.
8
+
9
+ ## Client-specific setup guides
10
+
11
+ 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.
12
+
13
+ | Client | Guide |
14
+ | --- | --- |
15
+ | Claude (Desktop & web) | [claude](./claude.md) |
16
+ | Claude Code | [claude-code](./claude-code.md) |
17
+ | Cursor | [cursor](./cursor.md) |
18
+ | Devin Desktop (formerly Windsurf) | [devin-desktop](./devin-desktop.md) |
19
+ | VS Code (GitHub Copilot) | [vscode](./vscode.md) |
20
+ | Zed | [zed](./zed.md) |
21
+ | ChatGPT | [chatgpt](./chatgpt.md) |
22
+ | Grok (xAI) | [grok](./grok.md) |
23
+ | MCP Inspector (testing) | [mcp-inspector](./mcp-inspector.md) |
24
+
25
+ The rest of this README covers the underlying authentication options and configuration shapes.
26
+
27
+ ## Authentication
28
+
29
+ You can connect to Moon Banking over MCP using **either** of two auth methods:
30
+
31
+ | Method | Best for | API key required? |
32
+ | --- | --- | --- |
33
+ | **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 |
34
+ | **Self-hosted stdio package** (this npm package) | Local scripts, agents, or clients that only support stdio MCP. | Yes |
35
+
36
+ Both methods expose the same tool surface; pick whichever matches your client.
37
+
38
+ ## Hosted MCP server (OAuth)
39
+
40
+ URL: `https://mcp.moonbanking.com/mcp` (Streamable HTTP, OAuth 2.0 with Dynamic Client Registration).
41
+
42
+ 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.
43
+
44
+ ```json
45
+ {
46
+ "mcpServers": {
47
+ "moonbanking": {
48
+ "url": "https://mcp.moonbanking.com/mcp"
49
+ }
50
+ }
51
+ }
52
+ ```
53
+
54
+ For clients that don't yet speak remote MCP natively (eg. older ChatGPT configurations), the [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) bridge can wrap the hosted endpoint as a stdio command:
55
+
56
+ ```json
57
+ {
58
+ "mcpServers": {
59
+ "moonbanking": {
60
+ "command": "npx",
61
+ "args": ["-y", "mcp-remote", "https://mcp.moonbanking.com/mcp"]
62
+ }
63
+ }
64
+ }
65
+ ```
66
+
67
+ ## Self-hosted (API key)
68
+
69
+ 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.
6
70
 
7
71
  ### Direct invocation
8
72
 
@@ -34,22 +98,6 @@ For clients with a configuration JSON, it might look something like this:
34
98
  }
35
99
  ```
36
100
 
37
- ### Cursor
38
-
39
- If you use Cursor, you can install the MCP server by using the button below. You will need to set your environment variables
40
- in Cursor's `mcp.json`, which can be found in Cursor Settings > Tools & MCP > New MCP Server.
41
-
42
- [![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=moonbanking-mcp&config=eyJlbnYiOnsiTU9PTl9CQU5LSU5HX0FQSV9LRVkiOiJTZXQgeW91ciBNT09OX0JBTktJTkdfQVBJX0tFWSBoZXJlLiJ9LCJjb21tYW5kIjoibnB4IC15IEBtb29uYmFua2luZy9tY3Atc2VydmVyIn0%3D)
43
-
44
- ### Claude Code
45
-
46
- If you use Claude Code, you can install the MCP server by running the command below in your terminal. You will need to set your
47
- environment variables in Claude Code's `.claude.json`, which can be found in your home directory.
48
-
49
- ```
50
- claude mcp add --transport stdio moonbanking_api --env MOON_BANKING_API_KEY="Your MOON_BANKING_API_KEY here." -- npx -y @moonbanking/mcp-server
51
- ```
52
-
53
101
  ## Filter Specific Tools
54
102
 
55
103
  You can limit which tools are exposed by using the `--tool` flag:
@@ -70,7 +118,11 @@ npx @moonbanking/mcp-server --tool=tool1 --tool=tool2
70
118
  - `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.
71
119
  - `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.
72
120
  - `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.
73
- - `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.
121
+ - `market_get`: This endpoint allows you to retrieve a paginated list of markets (e.g. stock exchanges). You can search by name or code, filter by exact code, country, or market type, and sort the results.
122
+ - `market_getById`: This endpoint allows you to retrieve a specific market (e.g. stock exchange) by providing the market id.
123
+ - `stock_get`: This endpoint allows you to retrieve a paginated list of stock listings. You can search by ticker symbol, filter by exact symbol, market, bank, or primary-listing status, and sort the results.
124
+ - `stock_getById`: This endpoint allows you to retrieve a specific stock listing by providing the stock id. You can optionally include the associated `market` and/or `bank` as nested objects.
125
+ - `search_get`: Search across banks, countries, stories, and stocks. You can specify which entities to search using the include parameter. If no include value is provided, all entities will be searched. Banks are also matched on the ticker symbol of their stock listings, so searching `BAC` returns Bank of America.
74
126
 
75
127
  ## License
76
128
 
package/chatgpt.md ADDED
@@ -0,0 +1,87 @@
1
+ # Moon Banking MCP for ChatGPT
2
+
3
+ > Add the Moon Banking MCP server to ChatGPT via Custom Connectors or a Custom GPT.
4
+
5
+ ChatGPT is great at fluent answers and weaker on fresh, structured facts about specific institutions. Adding the Moon Banking MCP as a Custom Connector gives ChatGPT live, tool-grounded access to every bank, country, community-rated score across 14 categories (customer service, fees & pricing, digital experience, crypto friendliness, security & trust, lending, transparency, and more), vote, and user story Moon Banking tracks.
6
+
7
+ Use it for everything from *"which crypto-friendly banks operate in Argentina?"* to *"compare the top three US challenger banks on fees and digital experience"* to *"summarize what users are saying about Wells Fargo's customer service this year"* — and get citable, data-grounded answers instead of generic summaries.
8
+
9
+ ChatGPT supports MCP through two distinct surfaces, and the right choice depends on your plan.
10
+
11
+ ## Recommended: hosted (OAuth) via Custom Connectors
12
+
13
+ ChatGPT Plus, Pro, Team, Enterprise, and Edu users can add the Moon Banking server as a **Custom Connector** (the same mechanism that powers the official Notion, Gmail, etc. connectors).
14
+
15
+ 1. Open ChatGPT → **Settings → Connectors → Custom Connectors → Add custom connector**.
16
+ 2. Enter:
17
+ - **Name:** `Moon Banking`
18
+ - **URL:** `https://mcp.moonbanking.com/mcp`
19
+ 3. Save. ChatGPT will open a browser tab to authenticate with Moon Banking. Approve.
20
+ 4. In any chat, click the **+** button and enable the Moon Banking connector.
21
+
22
+ > Custom Connectors require a paid plan with Connectors enabled for your region. Availability may vary; check [help.openai.com](https://help.openai.com) for current rollout status.
23
+
24
+ ## Alternative: stdio bridge for Custom GPTs / older setups
25
+
26
+ If your plan doesn't expose Custom Connectors, you can wrap the hosted endpoint with [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) for any tooling that accepts stdio MCP (eg. a self-hosted ChatGPT-compatible agent):
27
+
28
+ ```json
29
+ {
30
+ "mcpServers": {
31
+ "moonbanking": {
32
+ "command": "npx",
33
+ "args": ["-y", "mcp-remote", "https://mcp.moonbanking.com/mcp"]
34
+ }
35
+ }
36
+ }
37
+ ```
38
+
39
+ You can also run the stdio-only API-key package directly:
40
+
41
+ ```json
42
+ {
43
+ "mcpServers": {
44
+ "moonbanking-mcp": {
45
+ "command": "npx",
46
+ "args": ["-y", "@moonbanking/mcp-server"],
47
+ "env": {
48
+ "MOON_BANKING_API_KEY": "Bearer mb_sk_..."
49
+ }
50
+ }
51
+ }
52
+ }
53
+ ```
54
+
55
+ ## Verify the connection
56
+
57
+ Start a new chat and prompt:
58
+
59
+ > Use the Moon Banking connector to find banks in Singapore with strong fees and pricing scores.
60
+
61
+ ## Troubleshooting
62
+
63
+ - **Connector option is missing.** Custom Connectors are gated by plan and region. Try the `mcp-remote` stdio bridge instead.
64
+ - **OAuth returns to a 404.** Make sure your ChatGPT browser session is logged in and that pop-ups are allowed for chatgpt.com.
65
+
66
+
67
+ ## Available tools
68
+
69
+ The Moon Banking MCP server exposes the following tools (identical across every client):
70
+
71
+ - `bank_getByHostname`
72
+ - `bank_get`
73
+ - `bank_getById`
74
+ - `bank_semanticSearch`
75
+ - `bankVote_get`
76
+ - `country_get`
77
+ - `country_getByCountryCode`
78
+ - `story_get`
79
+ - `story_getById`
80
+ - `world_getOverview`
81
+ - `market_get`
82
+ - `market_getById`
83
+ - `stock_get`
84
+ - `stock_getById`
85
+ - `search_get`
86
+
87
+ Full descriptions live on the [main MCP page](./README.md).
package/claude-code.md ADDED
@@ -0,0 +1,78 @@
1
+ # Moon Banking MCP for Claude Code
2
+
3
+ > Add the Moon Banking MCP server to the Claude Code CLI for use in terminal-driven coding sessions.
4
+
5
+ Claude Code is the right tool when you're scripting against APIs, automating data work, or hacking on a fintech backend without leaving your terminal. Adding the Moon Banking MCP gives the CLI agent live access to the entire Moon Banking dataset — banks, countries, community-rated scores across 14 categories (customer service, fees & pricing, digital experience, crypto friendliness, lending, transparency, …), user votes, user stories, and global rankings — over either the hosted OAuth endpoint or a local stdio process.
6
+
7
+ Typical uses: seeding a fintech database with realistic bank records, generating evaluation datasets that need real institutions, prototyping "find me a bank that…" features, or pausing mid-script to ask *"which US banks have the highest customer-service scores?"* without context-switching to a browser.
8
+
9
+ Claude Code is Anthropic's terminal CLI. It supports both **remote** (HTTP/Streamable HTTP) and **stdio** MCP transports.
10
+
11
+ ## Recommended: hosted (OAuth)
12
+
13
+ Run this once in any directory:
14
+
15
+ ```bash
16
+ claude mcp add --transport http moonbanking https://mcp.moonbanking.com/mcp
17
+ ```
18
+
19
+ The first time you invoke a Moon Banking tool, Claude Code will print a one-time URL and ask you to authenticate in your browser. The resulting OAuth token is cached on disk and reused across sessions.
20
+
21
+ To install only for the current project (instead of globally), pass `--scope project`:
22
+
23
+ ```bash
24
+ claude mcp add --transport http --scope project moonbanking https://mcp.moonbanking.com/mcp
25
+ ```
26
+
27
+ The project-scoped config lives in `.claude.json` at the project root and can be committed to source control if you want every developer on the team to share it.
28
+
29
+ ## Alternative: self-hosted (API key)
30
+
31
+ ```bash
32
+ claude mcp add --transport stdio moonbanking \
33
+ --env MOON_BANKING_API_KEY="Bearer mb_sk_..." \
34
+ -- npx -y @moonbanking/mcp-server
35
+ ```
36
+
37
+ This launches a local stdio MCP server that authenticates with your API key on every call.
38
+
39
+ ## Verify the connection
40
+
41
+ ```bash
42
+ claude mcp list
43
+ ```
44
+
45
+ You should see `moonbanking` listed with a connection status of `connected`. Then start a session and try:
46
+
47
+ ```
48
+ > Find the highest-rated bank in Switzerland for crypto users.
49
+ ```
50
+
51
+ ## Troubleshooting
52
+
53
+ - **`Failed to authenticate`** Run `claude mcp remove moonbanking` and re-add to clear the cached token.
54
+ - **No tools available.** Run `claude mcp list` — if the server appears with a red status, run `claude mcp logs moonbanking` to inspect the error.
55
+ - **Pro plan required.** The MCP API rejects non-Pro Moon Banking accounts; [upgrade to Pro](https://moonbanking.com/pro).
56
+
57
+
58
+ ## Available tools
59
+
60
+ The Moon Banking MCP server exposes the following tools (identical across every client):
61
+
62
+ - `bank_getByHostname`
63
+ - `bank_get`
64
+ - `bank_getById`
65
+ - `bank_semanticSearch`
66
+ - `bankVote_get`
67
+ - `country_get`
68
+ - `country_getByCountryCode`
69
+ - `story_get`
70
+ - `story_getById`
71
+ - `world_getOverview`
72
+ - `market_get`
73
+ - `market_getById`
74
+ - `stock_get`
75
+ - `stock_getById`
76
+ - `search_get`
77
+
78
+ Full descriptions live on the [main MCP page](./README.md).
package/claude.md ADDED
@@ -0,0 +1,99 @@
1
+ # Moon Banking MCP for Claude
2
+
3
+ > Add the Moon Banking MCP server to Claude Desktop and claude.ai as a custom connector.
4
+
5
+ Claude is one of the strongest models for nuanced research and writing, and one of its biggest weak points is fresh, structured data about specific institutions. The Moon Banking MCP gives Claude live access to every bank, country, community-rated score across 14 categories (customer service, fees & pricing, digital experience, crypto friendliness, security & trust, lending, transparency, and more), vote, and user story in the Moon Banking database — so questions about real-world banks come back with citable, tool-grounded facts instead of generic training-data summaries.
6
+
7
+ Try *"draft a comparison of the three highest-rated digital banks in Germany, then tell me which has the best reviews on fees"*, *"summarize what users are saying about HSBC's customer service this year"*, or *"which banks in Brazil rank highest on crypto friendliness?"* — Claude will pull the data on demand and reason over it in-line.
8
+
9
+ Claude Desktop and claude.ai both support remote MCP servers as **custom connectors**. The hosted Moon Banking endpoint uses Streamable HTTP with OAuth, which both clients handle out of the box.
10
+
11
+ ## Recommended: hosted (OAuth)
12
+
13
+ ### Claude Desktop
14
+
15
+ 1. Open **Settings → Connectors** (or **Settings → Developer → Add custom connector**, depending on your version).
16
+ 2. Choose **Add custom connector**.
17
+ 3. Set:
18
+ - **Name:** `Moon Banking`
19
+ - **URL:** `https://mcp.moonbanking.com/mcp`
20
+ 4. Click **Add**. Claude will open a browser window asking you to sign in to Moon Banking. Approve the connection.
21
+ 5. Back in Claude, toggle the **Moon Banking** connector on in any chat.
22
+
23
+ If you prefer to edit the config file directly, on macOS it lives at `~/Library/Application Support/Claude/claude_desktop_config.json`. On Windows it's `%APPDATA%\Claude\claude_desktop_config.json`:
24
+
25
+ ```json
26
+ {
27
+ "mcpServers": {
28
+ "moonbanking": {
29
+ "url": "https://mcp.moonbanking.com/mcp"
30
+ }
31
+ }
32
+ }
33
+ ```
34
+
35
+ Restart Claude Desktop after editing.
36
+
37
+ ### claude.ai (web)
38
+
39
+ 1. Sign in at [claude.ai](https://claude.ai) on a Pro, Team, or Enterprise plan (custom connectors require a paid plan).
40
+ 2. Go to **Settings → Connectors → Add custom connector**.
41
+ 3. Paste `https://mcp.moonbanking.com/mcp` and confirm.
42
+ 4. Approve the OAuth prompt that opens.
43
+
44
+ ## Alternative: self-hosted (API key)
45
+
46
+ If you need a stdio connection (eg. air-gapped use or a service account), Claude Desktop can spawn the published npm package locally. Add this to `claude_desktop_config.json`:
47
+
48
+ ```json
49
+ {
50
+ "mcpServers": {
51
+ "moonbanking-mcp": {
52
+ "command": "npx",
53
+ "args": ["-y", "@moonbanking/mcp-server"],
54
+ "env": {
55
+ "MOON_BANKING_API_KEY": "Bearer mb_sk_..."
56
+ }
57
+ }
58
+ }
59
+ }
60
+ ```
61
+
62
+ Generate the API key at [moonbanking.com/settings/api/manage-api-keys](https://moonbanking.com/settings/api/manage-api-keys) and restart Claude.
63
+
64
+ ## Verify the connection
65
+
66
+ Start a new conversation in Claude and ask:
67
+
68
+ > Using the Moon Banking connector, find banks in Brazil that are known for being crypto-friendly.
69
+
70
+ Claude should call tools like `bank_semanticSearch` or `country_getByCountryCode` and reply with real Moon Banking data.
71
+
72
+ ## Troubleshooting
73
+
74
+ - **Connector shows as disconnected.** Click the connector in Settings and re-run the auth flow. If your access token expired Claude will need to re-authenticate.
75
+ - **`Tool list is empty`** Make sure your account has been granted Pro access at moonbanking.com. The MCP endpoint requires a Pro subscription.
76
+ - **Cannot add connector.** Claude.ai's custom connectors are gated to paid plans. Claude Desktop has fewer restrictions.
77
+
78
+
79
+ ## Available tools
80
+
81
+ The Moon Banking MCP server exposes the following tools (identical across every client):
82
+
83
+ - `bank_getByHostname`
84
+ - `bank_get`
85
+ - `bank_getById`
86
+ - `bank_semanticSearch`
87
+ - `bankVote_get`
88
+ - `country_get`
89
+ - `country_getByCountryCode`
90
+ - `story_get`
91
+ - `story_getById`
92
+ - `world_getOverview`
93
+ - `market_get`
94
+ - `market_getById`
95
+ - `stock_get`
96
+ - `stock_getById`
97
+ - `search_get`
98
+
99
+ Full descriptions live on the [main MCP page](./README.md).
package/cursor.md ADDED
@@ -0,0 +1,90 @@
1
+ # Moon Banking MCP for Cursor
2
+
3
+ > Connect Cursor to the Moon Banking MCP server so the AI can query banks, countries, votes, and stories with one-click OAuth.
4
+
5
+ Cursor's agent is excellent at writing code but has no built-in knowledge of specific banks, their hostnames, fee structures, or how real customers rate them. Wiring in the Moon Banking MCP closes that gap: Cursor gains live access to every bank Moon Banking tracks — name, country, primary hostname, rank, community-rated scores across 14 categories (customer service, fees & pricing, digital experience, crypto friendliness, security & trust, lending, and more) — plus the user-submitted stories backing those scores.
6
+
7
+ Useful when you're scaffolding a fintech project, validating bank hostnames you see in code, generating realistic test fixtures, or just prompting *"find me a crypto-friendly business bank in Singapore and stub out a client for its public API"* mid-session. Answers are grounded in fresh Moon Banking data — not whatever your model memorized last year.
8
+
9
+ Cursor speaks remote MCP natively over Streamable HTTP. The fastest setup is to point Cursor at the hosted endpoint — Cursor handles the OAuth flow in a browser tab automatically.
10
+
11
+ ## Recommended: hosted (OAuth)
12
+
13
+ ### Option A — Click to install
14
+
15
+ [![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](cursor://anysphere.cursor-deeplink/mcp/install?name=moonbanking&config=eyJ1cmwiOiJodHRwczovL21jcC5tb29uYmFua2luZy5jb20vbWNwIn0%3D)
16
+
17
+ ### Option B — Edit `mcp.json` directly
18
+
19
+ Open Cursor and go to **Settings → Tools & MCP → New MCP Server**, or edit your global config at `~/.cursor/mcp.json`:
20
+
21
+ ```json
22
+ {
23
+ "mcpServers": {
24
+ "moonbanking": {
25
+ "url": "https://mcp.moonbanking.com/mcp"
26
+ }
27
+ }
28
+ }
29
+ ```
30
+
31
+ For project-scoped install instead, drop the same JSON at `.cursor/mcp.json` inside your repository.
32
+
33
+ The first time Cursor connects, it will open a browser window asking you to sign in to Moon Banking. After that, the connection persists across restarts.
34
+
35
+ ## Alternative: self-hosted (API key)
36
+
37
+ If you would rather run the MCP server locally as a stdio process (eg. you are on a machine without a browser, or you want to use a service API key), Cursor can spawn the published npm package.
38
+
39
+ ```json
40
+ {
41
+ "mcpServers": {
42
+ "moonbanking-mcp": {
43
+ "command": "npx",
44
+ "args": ["-y", "@moonbanking/mcp-server"],
45
+ "env": {
46
+ "MOON_BANKING_API_KEY": "Bearer mb_sk_..."
47
+ }
48
+ }
49
+ }
50
+ }
51
+ ```
52
+
53
+ Generate an API key at [moonbanking.com/settings/api/manage-api-keys](https://moonbanking.com/settings/api/manage-api-keys).
54
+
55
+ ## Verify the connection
56
+
57
+ Open the Cursor chat panel and look for the **MCP** indicator beside the model picker — it should show `moonbanking` with a green dot and the tool count. You can also ask the agent something like:
58
+
59
+ > What are the top three banks in Germany right now?
60
+
61
+ If it responds using the `bank_get` and `country_get` tools, the connection is working.
62
+
63
+ ## Troubleshooting
64
+
65
+ - **Tools list is empty.** Cursor may have cached an unauthenticated session. Remove the entry from `mcp.json`, restart Cursor, and re-add it. If the issue persists, run `npx @modelcontextprotocol/inspector` against `https://mcp.moonbanking.com/mcp` to confirm the server is reachable from your network.
66
+ - **OAuth window closes immediately.** Make sure your default browser is signed in to Moon Banking, or sign in first at [moonbanking.com](https://moonbanking.com) and retry.
67
+ - **403 errors after sign-in.** Your Moon Banking account must be on a Pro plan to use the MCP API. [Upgrade to Pro](https://moonbanking.com/pro).
68
+
69
+
70
+ ## Available tools
71
+
72
+ The Moon Banking MCP server exposes the following tools (identical across every client):
73
+
74
+ - `bank_getByHostname`
75
+ - `bank_get`
76
+ - `bank_getById`
77
+ - `bank_semanticSearch`
78
+ - `bankVote_get`
79
+ - `country_get`
80
+ - `country_getByCountryCode`
81
+ - `story_get`
82
+ - `story_getById`
83
+ - `world_getOverview`
84
+ - `market_get`
85
+ - `market_getById`
86
+ - `stock_get`
87
+ - `stock_getById`
88
+ - `search_get`
89
+
90
+ Full descriptions live on the [main MCP page](./README.md).