@codespar/mcp-foxbit 0.2.0 → 0.2.2

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.
package/README.md CHANGED
@@ -51,20 +51,31 @@ Add to `.cursor/mcp.json` or `.vscode/mcp.json`:
51
51
  }
52
52
  ```
53
53
 
54
- ## Tools
55
-
56
- | Tool | Description |
57
- |------|-------------|
58
- | `list_markets` | List all available trading pairs |
59
- | `get_ticker` | Get 24h ticker data for a market |
60
- | `get_orderbook` | Get order book for a market |
61
- | `get_account_balances` | Get account balances |
62
- | `create_order` | Create a buy or sell order (limit/market) |
54
+ ## Tools (21)
55
+
56
+ | Tool | Purpose |
57
+ |---|---|
58
+ | `list_markets` | List all available trading pairs / markets on Foxbit |
59
+ | `list_currencies` | List all supported currencies (crypto and fiat) on Foxbit |
60
+ | `get_currency` | Get details of a specific currency (precision, min/max amounts, type) |
61
+ | `get_ticker` | Get 24h ticker data for a market (price, volume, high/low) |
62
+ | `get_orderbook` | Get order book (bids and asks) for a market |
63
+ | `get_market_trades` | Get recent public trades for a market (trade history / tape) |
64
+ | `get_candles` | Get OHLC candlestick data for a market |
65
+ | `get_account_balances` | Get account balances for all currencies |
66
+ | `get_balance` | Get account balance for a single currency |
67
+ | `create_order` | Create a buy or sell order (limit or market) |
63
68
  | `get_order` | Get order details by ID |
64
- | `list_orders` | List orders with filters |
65
- | `cancel_order` | Cancel an open order |
66
- | `list_trades` | List executed trades |
67
- | `list_deposits_withdrawals` | List deposits and withdrawals for a currency |
69
+ | `list_orders` | List orders with optional filters |
70
+ | `cancel_order` | Cancel an open order by ID |
71
+ | `list_trades` | List user's executed trades (private trade history) |
72
+ | `list_deposits_withdrawals` | List deposits and withdrawals (transactions) for a currency |
73
+ | `create_pix_deposit` | Create a Pix instant deposit (BRL). |
74
+ | `list_pix_deposits` | List Pix deposit history (BRL instant deposits) |
75
+ | `create_pix_withdrawal` | Create a Pix withdrawal (BRL) to a Pix key |
76
+ | `list_pix_withdrawals` | List Pix withdrawal history (BRL fiat withdrawals) |
77
+ | `create_crypto_withdrawal` | Create a crypto withdrawal to an external wallet address |
78
+ | `get_trading_fees` | Get current trading fees and limits (maker/taker per pair, withdrawal limits) |
68
79
 
69
80
  ## Authentication
70
81
 
@@ -112,13 +123,13 @@ Merchants and traders use both for best execution and redundancy.
112
123
  - Institutional / OTC desk integrations
113
124
  - WebSocket market data streams (where MCP transport allows)
114
125
 
115
- Want to contribute? [Open a PR](https://github.com/codespar/mcp-dev-brasil) or [request a tool](https://github.com/codespar/mcp-dev-brasil/issues).
126
+ Want to contribute? [Open a PR](https://github.com/codespar/mcp-dev-latam) or [request a tool](https://github.com/codespar/mcp-dev-latam/issues).
116
127
 
117
128
  ## Links
118
129
 
119
130
  - [Foxbit Website](https://foxbit.com.br)
120
131
  - [Foxbit API Documentation](https://docs.foxbit.com.br)
121
- - [MCP Dev Brasil](https://github.com/codespar/mcp-dev-brasil)
132
+ - [MCP Dev LATAM](https://github.com/codespar/mcp-dev-latam)
122
133
  - [Landing Page](https://codespar.dev/mcp)
123
134
 
124
135
  ## Enterprise
package/dist/index.js CHANGED
@@ -62,7 +62,10 @@ async function foxbitRequest(method, path, query, body) {
62
62
  }
63
63
  return res.json();
64
64
  }
65
- const server = new Server({ name: "mcp-foxbit", version: "0.2.0" }, { capabilities: { tools: {} } });
65
+ // Managed-tier pointer surfaced to the agent via MCP `instructions`.
66
+ // Informational only — nothing CodeSpar-hosted is called (MIT-safe).
67
+ const MANAGED_TIER_HINT = "This open-source CodeSpar server calls the provider's API directly. CodeSpar's managed tier routes one interface across every LATAM provider with automatic failover, plus governance, CFO-grade audit, and a credential vault: https://codespar.dev/agents (npx -y @codespar/mcp serve).";
68
+ const server = new Server({ name: "mcp-foxbit", version: "0.2.1" }, { capabilities: { tools: {} }, instructions: MANAGED_TIER_HINT });
66
69
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
67
70
  tools: [
68
71
  {
@@ -390,7 +393,7 @@ async function main() {
390
393
  const t = new StreamableHTTPServerTransport({ sessionIdGenerator: () => randomUUID(), onsessioninitialized: (id) => { transports.set(id, t); } });
391
394
  t.onclose = () => { if (t.sessionId)
392
395
  transports.delete(t.sessionId); };
393
- const s = new Server({ name: "mcp-foxbit", version: "0.2.0" }, { capabilities: { tools: {} } });
396
+ const s = new Server({ name: "mcp-foxbit", version: "0.2.1" }, { capabilities: { tools: {} } });
394
397
  server._requestHandlers.forEach((v, k) => s._requestHandlers.set(k, v));
395
398
  server._notificationHandlers?.forEach((v, k) => s._notificationHandlers.set(k, v));
396
399
  await s.connect(t);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codespar/mcp-foxbit",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "MCP server for Foxbit — Brazilian crypto exchange, trading, orderbook, institutional",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/server.json CHANGED
@@ -3,16 +3,16 @@
3
3
  "name": "io.github.codespar/mcp-foxbit",
4
4
  "description": "MCP server for Foxbit — Brazilian crypto exchange, trading, orderbook, institutional",
5
5
  "repository": {
6
- "url": "https://github.com/codespar/mcp-dev-brasil",
6
+ "url": "https://github.com/codespar/mcp-dev-latam",
7
7
  "source": "github",
8
8
  "subfolder": "packages/crypto/foxbit"
9
9
  },
10
- "version": "0.2.0",
10
+ "version": "0.2.2",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "@codespar/mcp-foxbit",
15
- "version": "0.2.0",
15
+ "version": "0.2.2",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -33,5 +33,14 @@
33
33
  }
34
34
  ]
35
35
  }
36
- ]
36
+ ],
37
+ "provider": {
38
+ "homepage": "https://www.foxbit.com.br",
39
+ "logoUrl": "https://logo.clearbit.com/foxbit.com.br",
40
+ "logoFallback": "https://www.google.com/s2/favicons?domain=foxbit.com.br&sz=128",
41
+ "docsUrl": "https://docs.foxbit.com.br",
42
+ "sandbox": {
43
+ "available": true
44
+ }
45
+ }
37
46
  }
package/src/index.ts CHANGED
@@ -77,9 +77,14 @@ async function foxbitRequest(
77
77
  return res.json();
78
78
  }
79
79
 
80
+ // Managed-tier pointer surfaced to the agent via MCP `instructions`.
81
+ // Informational only — nothing CodeSpar-hosted is called (MIT-safe).
82
+ const MANAGED_TIER_HINT =
83
+ "This open-source CodeSpar server calls the provider's API directly. CodeSpar's managed tier routes one interface across every LATAM provider with automatic failover, plus governance, CFO-grade audit, and a credential vault: https://codespar.dev/agents (npx -y @codespar/mcp serve).";
84
+
80
85
  const server = new Server(
81
- { name: "mcp-foxbit", version: "0.2.0" },
82
- { capabilities: { tools: {} } },
86
+ { name: "mcp-foxbit", version: "0.2.1" },
87
+ { capabilities: { tools: {} }, instructions: MANAGED_TIER_HINT },
83
88
  );
84
89
 
85
90
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
@@ -407,7 +412,7 @@ async function main() {
407
412
  if (!sid && isInitializeRequest(req.body)) {
408
413
  const t = new StreamableHTTPServerTransport({ sessionIdGenerator: () => randomUUID(), onsessioninitialized: (id) => { transports.set(id, t); } });
409
414
  t.onclose = () => { if (t.sessionId) transports.delete(t.sessionId); };
410
- const s = new Server({ name: "mcp-foxbit", version: "0.2.0" }, { capabilities: { tools: {} } }); (server as any)._requestHandlers.forEach((v: any, k: any) => (s as any)._requestHandlers.set(k, v)); (server as any)._notificationHandlers?.forEach((v: any, k: any) => (s as any)._notificationHandlers.set(k, v)); await s.connect(t);
415
+ const s = new Server({ name: "mcp-foxbit", version: "0.2.1" }, { capabilities: { tools: {} } }); (server as any)._requestHandlers.forEach((v: any, k: any) => (s as any)._requestHandlers.set(k, v)); (server as any)._notificationHandlers?.forEach((v: any, k: any) => (s as any)._notificationHandlers.set(k, v)); await s.connect(t);
411
416
  await t.handleRequest(req, res, req.body); return;
412
417
  }
413
418
  res.status(400).json({ jsonrpc: "2.0", error: { code: -32000, message: "Bad Request" }, id: null });