@guiie/buda-mcp 1.2.1 → 1.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.
@@ -0,0 +1,54 @@
1
+ ---
2
+ description: Release workflow and publishing checklist for buda-mcp
3
+ alwaysApply: true
4
+ ---
5
+
6
+ # buda-mcp Release Workflow
7
+
8
+ ## Version source-of-truth
9
+
10
+ - `package.json` is the **only** place to set the version number.
11
+ - After changing it, always run `npm run sync-version` to propagate it to `server.json`.
12
+ - All runtime references (`User-Agent`, `McpServer`, health endpoint, server-card) read from `src/version.ts` — never hardcode version strings.
13
+
14
+ ## Before publishing a new version
15
+
16
+ 1. Bump `package.json` version
17
+ 2. `npm run sync-version` — updates `server.json`
18
+ 3. `npm test` — must pass (23 unit + all integration)
19
+ 4. Update `CHANGELOG.md` with all changes since the last release
20
+ 5. Update `marketplace/` files if tools were added/changed/removed:
21
+ - `marketplace/gemini-tools.json` — function declarations
22
+ - `marketplace/openapi.yaml` — version field + path descriptions
23
+ - `marketplace/claude-listing.md` — tool descriptions
24
+ - `marketplace/README.md` — version header
25
+ 6. Update `PUBLISH_CHECKLIST.md` with new version and release notes template
26
+ 7. Commit and push
27
+
28
+ ## Publishing steps (manual, done after development is complete)
29
+
30
+ ```bash
31
+ npm publish --access public --provenance # → npmjs.com
32
+ # then create GitHub Release tag vX.Y.Z → triggers Actions workflow (MCP registry auto-publish)
33
+ # then notify mcp.so and Glama.ai — templates in PUBLISH_CHECKLIST.md
34
+ ```
35
+
36
+ ## Adding a new tool
37
+
38
+ 1. Create `src/tools/<name>.ts`
39
+ 2. Export `toolSchema` (name, description, inputSchema) — picked up automatically by `http.ts` server-card
40
+ 3. Export `register(server, client, cache?)`
41
+ 4. For tools with destructive actions: export the handler function for unit testing
42
+ 5. Apply `validateMarketId` if the tool accepts `market_id`
43
+ 6. Register in both `src/index.ts` and `src/http.ts`
44
+ 7. Add to `marketplace/gemini-tools.json`, `marketplace/openapi.yaml`, `marketplace/claude-listing.md`
45
+ 8. Add unit tests in `test/unit.ts`
46
+
47
+ ## Key architecture notes
48
+
49
+ - `src/validation.ts` — `validateMarketId(id)` returns error string or null; apply before `.toLowerCase()` and URL use
50
+ - `src/cache.ts` — `MemoryCache` with in-flight deduplication; TTLs: markets 60s, tickers 5s, orderbooks 3s
51
+ - `BudaApiError` has `retryAfterMs` for 429 responses; client retries once honoring `Retry-After` header (seconds, RFC 7231, default 1s)
52
+ - Auth tools only registered when `BUDA_API_KEY` + `BUDA_API_SECRET` env vars are present
53
+ - `scripts/sync-version.mjs` — run via `npm run sync-version`
54
+ - Unit tests: `npm run test:unit` (no network); Integration: `npm run test:integration` (skips if API unreachable)
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ #!/usr/bin/env node
1
2
  export {};
2
3
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env node
1
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
4
  import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guiie/buda-mcp",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "mcpName": "io.github.gtorreal/buda-mcp",
5
5
  "description": "MCP server for Buda.com's public cryptocurrency exchange API (Chile, Colombia, Peru)",
6
6
  "type": "module",
package/server.json CHANGED
@@ -6,12 +6,12 @@
6
6
  "url": "https://github.com/gtorreal/buda-mcp",
7
7
  "source": "github"
8
8
  },
9
- "version": "1.2.0",
9
+ "version": "1.2.2",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "@guiie/buda-mcp",
14
- "version": "1.2.0",
14
+ "version": "1.2.2",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  }
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env node
1
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
4
  import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";