dero-mcp-server 0.4.4 → 0.4.6
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 +8 -8
- package/SKILL.md +4 -2
- package/dist/citations.d.ts.map +1 -1
- package/dist/citations.js +48 -0
- package/dist/citations.js.map +1 -1
- package/dist/composites/_shared.d.ts +27 -2
- package/dist/composites/_shared.d.ts.map +1 -1
- package/dist/composites/_shared.js +50 -6
- package/dist/composites/_shared.js.map +1 -1
- package/dist/composites/explain-smart-contract.d.ts +6 -2
- package/dist/composites/explain-smart-contract.d.ts.map +1 -1
- package/dist/composites/explain-smart-contract.js +26 -2
- package/dist/composites/explain-smart-contract.js.map +1 -1
- package/dist/composites/recommend-docs-path.d.ts.map +1 -1
- package/dist/composites/recommend-docs-path.js +70 -8
- package/dist/composites/recommend-docs-path.js.map +1 -1
- package/dist/composites/tela-get-doc-content.d.ts +51 -0
- package/dist/composites/tela-get-doc-content.d.ts.map +1 -0
- package/dist/composites/tela-get-doc-content.js +82 -0
- package/dist/composites/tela-get-doc-content.js.map +1 -0
- package/dist/composites/tela-inspect.d.ts +27 -0
- package/dist/composites/tela-inspect.d.ts.map +1 -0
- package/dist/composites/tela-inspect.js +126 -0
- package/dist/composites/tela-inspect.js.map +1 -0
- package/dist/docs-parse.d.ts +18 -0
- package/dist/docs-parse.d.ts.map +1 -1
- package/dist/docs-parse.js +74 -0
- package/dist/docs-parse.js.map +1 -1
- package/dist/docs.d.ts.map +1 -1
- package/dist/docs.js +201 -36
- package/dist/docs.js.map +1 -1
- package/dist/http-server.js +1 -1
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +79 -18
- package/dist/server.js.map +1 -1
- package/dist/tela-parse.d.ts +117 -0
- package/dist/tela-parse.d.ts.map +1 -0
- package/dist/tela-parse.js +292 -0
- package/dist/tela-parse.js.map +1 -0
- package/dist/tool-descriptions.d.ts +3 -1
- package/dist/tool-descriptions.d.ts.map +1 -1
- package/dist/tool-descriptions.js +21 -2
- package/dist/tool-descriptions.js.map +1 -1
- package/package.json +6 -3
|
@@ -225,7 +225,7 @@ Input Requirements:
|
|
|
225
225
|
- \`limit_per_product\` is OPTIONAL (default 2, max 5). Cap per-product hits before merging.
|
|
226
226
|
|
|
227
227
|
Output: \`{ intent, product_hint, limit_per_product, recommended: [{ product, slug, title, canonical_url, score, boosted_score, rationale }], by_product: { derod | tela | hologram | deropay: { count, top_slug, top_score } }, related_docs: DeroCitation[] }\`. \`related_docs\` is the top-2 picks pre-built as citations the agent can drop straight into a response. On zero matches across every product the composite returns a structured \`_meta.error\` with code \`NO_DOCS_MATCH\` and a hint to rephrase or drop the product_hint.`,
|
|
228
|
-
explain_smart_contract: `Composite: fetch a DERO smart contract (code + variables + balances) and return its function surface, a classification of the contract pattern (token | registry | minimal | generic), a plain-language narrative, and curated DVM docs citations re-ordered so the most relevant page is first.
|
|
228
|
+
explain_smart_contract: `Composite: fetch a DERO smart contract (code + variables + balances) and return its function surface, a classification of the contract pattern (tela_index | tela_doc | token | registry | minimal | generic), a plain-language narrative, and curated DVM docs citations re-ordered so the most relevant page is first. TELA contracts (apps/files) are detected first and cite the TELA spec; for a deep TELA parse use tela_inspect.
|
|
229
229
|
|
|
230
230
|
When to call: when the user wants to UNDERSTAND a smart contract — its functions, state shape, or which DVM concept to read about. PREFER this over chaining dero_get_sc with a docs lookup yourself: this composite already parses the DVM-BASIC source for function declarations, sorts stringkeys/uint64keys deterministically, and picks the right docs page from a heuristic so the agent does not have to learn DVM-BASIC syntax to summarize a contract.
|
|
231
231
|
|
|
@@ -233,7 +233,26 @@ Input Requirements:
|
|
|
233
233
|
- \`scid\` is REQUIRED. Must be 64 hex chars (the smart contract id). Use \`0000…0001\` for the on-chain name registry as a known-good example.
|
|
234
234
|
- \`topoheight\` is OPTIONAL. Provide to inspect the contract at a specific topo height; omit for latest tip.
|
|
235
235
|
|
|
236
|
-
Output: \`{ scid, topoheight, kind, surface: { functions[], stringkeys[], uint64keys[], balances }, narrative, raw_code_length, has_code, related_docs }\`. \`kind\` is one of \`token | registry | minimal | generic\`. \`surface.functions\` items are \`{ name, args, returns }\`. \`has_code\` is false when the SCID is unknown or has no on-chain code; \`functions\` is then \`[]\` and the narrative explains the gap. \`raw_code_length\` is always present so the agent knows when to fall back to \`dero_get_sc\` for the full source.`,
|
|
236
|
+
Output: \`{ scid, topoheight, kind, surface: { functions[], stringkeys[], uint64keys[], balances }, narrative, raw_code_length, has_code, related_docs }\`. \`kind\` is one of \`tela_index | tela_doc | token | registry | minimal | generic\`. \`surface.functions\` items are \`{ name, args, returns }\`. \`has_code\` is false when the SCID is unknown or has no on-chain code; \`functions\` is then \`[]\` and the narrative explains the gap. \`raw_code_length\` is always present so the agent knows when to fall back to \`dero_get_sc\` for the full source.`,
|
|
237
|
+
tela_inspect: `Composite: fetch a TELA contract by SCID (DERO.GetSC code + variables) and parse it as either a TELA-INDEX-1 app manifest or a TELA-DOC-1 file contract, auto-detecting which standard it is from the stored keys. TELA is DERO's on-chain web-app platform: an INDEX is the app manifest (like package.json) and DOCs are the individual files (HTML/CSS/JS) stored on chain.
|
|
238
|
+
|
|
239
|
+
When to call: as the FIRST step whenever a user references a TELA SCID, a \`.tela\` dURL app, or asks "what is this TELA contract/app", "what files does this TELA app have", or "is this a TELA INDEX or DOC". PREFER this over dero_get_sc + manual parsing or explain_smart_contract: explain_smart_contract treats TELA contracts as generic DVM and its surface CAPS stored keys at 50, which silently drops DOCn entries on large manifests — tela_inspect reads the raw stringkeys directly so it enumerates ALL DOC references, and it decodes the TELA header/mods/commit schema the generic tool does not understand.
|
|
240
|
+
|
|
241
|
+
Input Requirements:
|
|
242
|
+
- \`scid\` is REQUIRED. Must be 64 hex chars (the TELA contract id).
|
|
243
|
+
- \`topoheight\` is OPTIONAL. Provide to inspect at a specific topo height; omit for the latest committed state.
|
|
244
|
+
|
|
245
|
+
Output: a discriminated union on \`kind\`. \`tela_index\` → \`{ scid, topoheight, kind, index: { name, description, icon, durl, mods[], docs:[{position, key, scid, is_entrypoint, malformed}], doc_count, commit, version_history[], current_commit_hash, owner, updateable:'unknown', updateable_note, parse_notes[] }, narrative, related_docs }\`. \`tela_doc\` → \`{ ..., doc: { filename, doc_type, sub_dir, durl, signature, content_embedded, code_size_bytes, immutable }, narrative, related_docs }\`. \`not_tela\` → \`{ ..., kind:'not_tela', reason, observed:{ stringkey_sample[], stringkeys_total, has_code, markers[] }, narrative }\` — returned (NOT an error) when the SCID is unknown or lacks TELA markers. Updateability cannot be derived from chain state (ringsize is not in GetSC) so it is honestly reported as 'unknown'.`,
|
|
246
|
+
tela_get_doc_content: `Composite: fetch the actual file content stored in a TELA-DOC-1 contract. A DOC's file (HTML/CSS/JS/...) lives inside a DVM-BASIC comment block in the contract code — NOT in a stored variable — so this tool fetches DERO.GetSC, confirms the SCID is a DOC, and extracts the file bytes. Large files paginate via offset.
|
|
247
|
+
|
|
248
|
+
When to call: when a user wants to READ or inspect the actual code/markup a TELA app file holds (e.g. "show me the HTML of this TELA DOC", "what does this app's app.js contain"). Get DOC SCIDs from tela_inspect on an INDEX first. PREFER this over dero_get_sc: that returns the raw DVM contract wrapper; this extracts just the embedded file content and reports docType, size, and signature presence.
|
|
249
|
+
|
|
250
|
+
Input Requirements:
|
|
251
|
+
- \`scid\` is REQUIRED. Must be 64 hex chars and reference a TELA-DOC-1 contract (an INDEX or non-TELA SCID returns INVALID_INPUT with guidance).
|
|
252
|
+
- \`offset\` is OPTIONAL. Byte offset into the extracted content; pass \`next_offset\` to read the next chunk of a large file.
|
|
253
|
+
- \`topoheight\` is OPTIONAL. Omit for the latest committed state.
|
|
254
|
+
|
|
255
|
+
Output: \`{ scid, topoheight, filename, doc_type, sub_dir, content_embedded, content, content_offset, content_length, content_truncated, next_offset, compressed, signature, signature_note, note, narrative, related_docs }\`. \`content\` is the extracted file bytes (a 60000-char chunk; paginate via \`next_offset\`), or null when content is not embedded (DocShard/STATIC/external). \`compressed\` is true for \`.gz\` filenames (bytes are gzip, not plaintext). The contract's author signature presence is reported but NOT cryptographically verified.`,
|
|
237
256
|
diagnose_chain_health: `Composite: run a four-step chain (DERO.Ping → DERO.GetInfo → DERO.GetHeight → DERO.GetTxPool) and return a single narrative health report with chain metadata, mempool snapshot, machine-readable signals, and curated docs citations.
|
|
238
257
|
|
|
239
258
|
When to call: as the first step in any chain-state investigation when the user asks "is the node healthy", "is it synced", or "what is the current state of the chain". PREFER this over chaining the four primitives yourself — the composite handles partial-failure modes and lag-depth classification consistently, and the response already cites the right docs page.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-descriptions.js","sourceRoot":"","sources":["../src/tool-descriptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,gBAAgB,EAAE;;;;;;sJAMkI;IAEpJ,gBAAgB,EAAE;;;;;;;sDAOkC;IAEpD,aAAa,EAAE;;;;;;uKAMsJ;IAErK,eAAe,EAAE;;;;;;kDAM+B;IAEhD,oBAAoB,EAAE;;;;;;uBAMD;IAErB,0BAA0B,EAAE;;;;;;wFAM0D;IAEtF,cAAc,EAAE;;;;;;;;;2FASyE;IAEzF,oCAAoC,EAAE;;;;;;;4EAOoC;IAE1E,6BAA6B,EAAE;;;;;;;qCAOI;IAEnC,gBAAgB,EAAE;;;;;;4CAMwB;IAE1C,uBAAuB,EAAE;;;;;;;mCAOQ;IAEjC,oBAAoB,EAAE;;;;;;;;uHAQ+F;IAErH,0BAA0B,EAAE;;;;;;;;;;;qEAWuC;IAEnE,WAAW,EAAE;;;;;;;;;;4EAU6D;IAE1E,qBAAqB,EAAE;;;;;;;;;;gDAUuB;IAE9C,oBAAoB,EAAE;;;;;;;;4GAQoF;IAE1G,uBAAuB,EAAE;;;;;;;;;gJASqH;IAE9I,gBAAgB,EAAE;;;;;;;;;;8GAU0F;IAE5G,kBAAkB,EAAE;;;;;;;;;kRAS4P;IAEhR,cAAc,EAAE;;;;;;;;8GAQ4F;IAE5G,8BAA8B,EAAE;;;;;;;;;01BASwzB;IAEx1B,oBAAoB,EAAE;;;;;;;;;oiBAS4gB;IAEliB,mBAAmB,EAAE;;;;;;;;;ghBASyf;IAE9gB,sBAAsB,EAAE;;;;;;;;
|
|
1
|
+
{"version":3,"file":"tool-descriptions.js","sourceRoot":"","sources":["../src/tool-descriptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,gBAAgB,EAAE;;;;;;sJAMkI;IAEpJ,gBAAgB,EAAE;;;;;;;sDAOkC;IAEpD,aAAa,EAAE;;;;;;uKAMsJ;IAErK,eAAe,EAAE;;;;;;kDAM+B;IAEhD,oBAAoB,EAAE;;;;;;uBAMD;IAErB,0BAA0B,EAAE;;;;;;wFAM0D;IAEtF,cAAc,EAAE;;;;;;;;;2FASyE;IAEzF,oCAAoC,EAAE;;;;;;;4EAOoC;IAE1E,6BAA6B,EAAE;;;;;;;qCAOI;IAEnC,gBAAgB,EAAE;;;;;;4CAMwB;IAE1C,uBAAuB,EAAE;;;;;;;mCAOQ;IAEjC,oBAAoB,EAAE;;;;;;;;uHAQ+F;IAErH,0BAA0B,EAAE;;;;;;;;;;;qEAWuC;IAEnE,WAAW,EAAE;;;;;;;;;;4EAU6D;IAE1E,qBAAqB,EAAE;;;;;;;;;;gDAUuB;IAE9C,oBAAoB,EAAE;;;;;;;;4GAQoF;IAE1G,uBAAuB,EAAE;;;;;;;;;gJASqH;IAE9I,gBAAgB,EAAE;;;;;;;;;;8GAU0F;IAE5G,kBAAkB,EAAE;;;;;;;;;kRAS4P;IAEhR,cAAc,EAAE;;;;;;;;8GAQ4F;IAE5G,8BAA8B,EAAE;;;;;;;;;01BASwzB;IAEx1B,oBAAoB,EAAE;;;;;;;;;oiBAS4gB;IAEliB,mBAAmB,EAAE;;;;;;;;;ghBASyf;IAE9gB,sBAAsB,EAAE;;;;;;;;0iBAQghB;IAExiB,YAAY,EAAE;;;;;;;;uzBAQuyB;IAErzB,oBAAoB,EAAE;;;;;;;;;oiBAS4gB;IAEliB,qBAAqB,EAAE;;;;;;;oXAO2V;IAElX,0BAA0B,EAAE;;;;;;;;;;;;;;uSAcyQ;IAErS,wBAAwB,EAAE;;;;;;;;;gSASoQ;IAE9R,qBAAqB,EAAE;;;;;;;;;;;;;mYAa0W;CACzX,CAAA;AAIV,MAAM,CAAC,MAAM,eAAe,GAA4B,MAAM,CAAC,IAAI,CACjE,iBAAiB,CACA,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dero-mcp-server",
|
|
3
3
|
"mcpName": "io.github.DHEBP/dero-mcp-server",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.6",
|
|
5
5
|
"description": "Model Context Protocol (MCP) server exposing DERO Stargate daemon JSON-RPC and bundled documentation to Claude and other MCP clients",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"engines": {
|
|
9
|
-
"node": ">=
|
|
9
|
+
"node": ">=20"
|
|
10
10
|
},
|
|
11
11
|
"main": "./dist/index.js",
|
|
12
12
|
"bin": {
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
"scripts": {
|
|
24
24
|
"build": "tsc",
|
|
25
25
|
"build:docs": "npx tsx scripts/build-docs-index.ts",
|
|
26
|
-
"release:docs-check": "npm run build:docs && npm run smoke:docs && npm run build",
|
|
26
|
+
"release:docs-check": "npm run build:docs && npm run smoke:docs && npm run check:docs-ranking && npm run build",
|
|
27
|
+
"release:docs": "npx tsx scripts/release-docs.ts",
|
|
27
28
|
"start": "node dist/index.js",
|
|
28
29
|
"dev": "node --import tsx src/index.ts",
|
|
29
30
|
"prepack": "npm run build",
|
|
@@ -38,8 +39,10 @@
|
|
|
38
39
|
"check:curve-fixtures": "npx tsx scripts/check-curve-fixtures.ts",
|
|
39
40
|
"check:proof-roundtrip": "npx tsx scripts/check-proof-roundtrip.ts",
|
|
40
41
|
"check:tx-parse": "npx tsx scripts/check-tx-parse.ts",
|
|
42
|
+
"check:tela-parse": "npx tsx scripts/check-tela-parse.ts",
|
|
41
43
|
"check:forge-demo": "npx tsx scripts/check-forge-demo.ts",
|
|
42
44
|
"check:server-json": "npx tsx scripts/check-server-json.ts",
|
|
45
|
+
"check:docs-ranking": "npx tsx scripts/check-docs-ranking.ts",
|
|
43
46
|
"typecheck": "tsc --noEmit"
|
|
44
47
|
},
|
|
45
48
|
"dependencies": {
|