obyte-mcp 0.1.0 → 0.1.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/dist/server.js CHANGED
@@ -2,7 +2,7 @@ import { McpServer } from "@modelcontextprotocol/server";
2
2
  import { serveStdio } from "@modelcontextprotocol/server/stdio";
3
3
  import { PACKAGE_NAME, PACKAGE_VERSION } from "./constants.js";
4
4
  import { writeDiagnostic } from "./diagnostics.js";
5
- import { ObyteHttpClient } from "./obyteClient.js";
5
+ import { ObyteHttpClient, toClientConfig } from "./obyteClient.js";
6
6
  import { registerObytePrompts } from "./prompts.js";
7
7
  import { registerObyteResources } from "./resources.js";
8
8
  import { registerObyteTools } from "./tools.js";
@@ -12,8 +12,11 @@ export async function runServer(config) {
12
12
  name: PACKAGE_NAME,
13
13
  version: PACKAGE_VERSION
14
14
  });
15
- const client = new ObyteHttpClient(config);
16
- registerObyteTools(server, client, config);
15
+ const clients = {
16
+ mainnet: new ObyteHttpClient(toClientConfig(config, "mainnet")),
17
+ testnet: new ObyteHttpClient(toClientConfig(config, "testnet"))
18
+ };
19
+ registerObyteTools(server, clients, config);
17
20
  registerObyteResources(server, config);
18
21
  registerObytePrompts(server);
19
22
  return server;
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAqB;IACnD,MAAM,MAAM,GAAG,UAAU,CACvB,GAAG,EAAE;QACH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;YAC3B,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3C,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC,EACD;QACE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,eAAe,CAAC;gBACd,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;QACL,CAAC;KACF,CACF,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAsB,EAAiB,EAAE;QAC/D,eAAe,CAAC;YACd,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,YAAY,MAAM,4BAA4B;SACxD,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAqB;IACnD,MAAM,MAAM,GAAG,UAAU,CACvB,GAAG,EAAE;QACH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;YAC3B,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;QACH,MAAM,OAAO,GAAqC;YAChD,OAAO,EAAE,IAAI,eAAe,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC/D,OAAO,EAAE,IAAI,eAAe,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SAChE,CAAC;QACF,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC,EACD;QACE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,eAAe,CAAC;gBACd,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;QACL,CAAC;KACF,CACF,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAsB,EAAiB,EAAE;QAC/D,eAAe,CAAC;YACd,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,YAAY,MAAM,4BAA4B;SACxD,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1D,CAAC"}
package/dist/setup.js CHANGED
@@ -8,9 +8,15 @@ export async function runSetup(cliOptions, setup) {
8
8
  const body = setup.client ? configSnippet(setup.client, config) : allConfigSnippets(config);
9
9
  process.stdout.write(`# obyte-mcp setup
10
10
 
11
- Network: ${config.network}
12
- Hub: ${config.hubAddress}
13
- Token registry: ${config.tokenRegistryAddress ?? "(not configured)"}
11
+ This one server serves both networks. Every tool takes an optional "network"; it defaults to the network below.
12
+
13
+ Default network: ${config.defaultNetwork}
14
+ Mainnet hub: ${config.networks.mainnet.hubAddress}
15
+ Testnet hub: ${config.networks.testnet.hubAddress}
16
+ Mainnet token registry: ${config.networks.mainnet.tokenRegistryAddress ?? "(not configured)"}
17
+ Testnet token registry: ${config.networks.testnet.tokenRegistryAddress ?? "(not configured)"}
18
+
19
+ To apply automatically instead of copying, run: obyte-mcp install
14
20
 
15
21
  ${body}
16
22
  `);
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASvE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAAsB,EAAE,KAAmB;IACxE,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC5F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;;WAEZ,MAAM,CAAC,OAAO;OAClB,MAAM,CAAC,UAAU;kBACN,MAAM,CAAC,oBAAoB,IAAI,kBAAkB;;EAEjE,IAAI;CACL,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,UAAsB;IACtD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,CAAC,MAAM,WAAW,CAAC,EAAE,EAAE,sCAAsC,CAAC,CAAC,CAAC;QAC5G,MAAM,oBAAoB,GACxB,UAAU,CAAC,oBAAoB,IAAI,CAAC,MAAM,WAAW,CAAC,EAAE,EAAE,+DAA+D,CAAC,CAAC,CAAC;QAC9H,MAAM,MAAM,GAAe,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,CAAC;QACtD,IAAI,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7D,IAAI,oBAAoB,KAAK,SAAS;YAAE,MAAM,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC3F,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,EAAsC;IAC9D,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;QAChG,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EAAsC,EAAE,QAAgB;IACjF,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,OAAO,MAAM,IAAI,SAAS,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASvE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAAsB,EAAE,KAAmB;IACxE,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC5F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;;;;mBAIJ,MAAM,CAAC,cAAc;eACzB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU;eAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU;0BACvB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,IAAI,kBAAkB;0BAClE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,IAAI,kBAAkB;;;;EAI1F,IAAI;CACL,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,UAAsB;IACtD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,CAAC,MAAM,WAAW,CAAC,EAAE,EAAE,sCAAsC,CAAC,CAAC,CAAC;QAC5G,MAAM,oBAAoB,GACxB,UAAU,CAAC,oBAAoB,IAAI,CAAC,MAAM,WAAW,CAAC,EAAE,EAAE,+DAA+D,CAAC,CAAC,CAAC;QAC9H,MAAM,MAAM,GAAe,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,CAAC;QACtD,IAAI,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7D,IAAI,oBAAoB,KAAK,SAAS;YAAE,MAAM,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC3F,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,EAAsC;IAC9D,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;QAChG,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EAAsC,EAAE,QAAgB;IACjF,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,OAAO,MAAM,IAAI,SAAS,CAAC;AAC7B,CAAC"}
package/dist/tools.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/server";
2
2
  import { ObyteHttpClient } from "./obyteClient.js";
3
- import type { RuntimeConfig } from "./types.js";
4
- export declare function registerObyteTools(server: McpServer, client: ObyteHttpClient, config: RuntimeConfig): void;
3
+ import type { Network, RuntimeConfig } from "./types.js";
4
+ export declare function registerObyteTools(server: McpServer, clients: Record<Network, ObyteHttpClient>, config: RuntimeConfig): void;
package/dist/tools.js CHANGED
@@ -1,18 +1,25 @@
1
+ import { envelopeConfig } from "./config.js";
1
2
  import { executeEnvelope } from "./envelope.js";
2
3
  import { assertNoSecrets } from "./secretGuard.js";
3
4
  import * as schemas from "./schemas.js";
4
- import { getAssetBySymbol, getDecimalsBySymbolOrAsset, getOfficialTokenRegistryAddress, getSymbolByAsset, resolveAsset } from "./symbols.js";
5
+ import { getAssetBySymbol, getDecimalsBySymbolOrAsset, getSymbolByAsset, resolveAsset } from "./symbols.js";
5
6
  import { textResult } from "./toolResult.js";
6
- export function registerObyteTools(server, client, config) {
7
- const context = { server, client, config };
7
+ export function registerObyteTools(server, clients, config) {
8
+ const context = { server, clients, config };
8
9
  for (const tool of [...recommendedTools(context), ...rawTools(context), ...symbolTools(context)]) {
9
10
  registerTool(context, tool);
10
11
  }
11
12
  }
13
+ function resolveNetwork(value, defaultNetwork) {
14
+ return value === "mainnet" || value === "testnet" ? value : defaultNetwork;
15
+ }
16
+ function withNetworkNote(description, config) {
17
+ return `${description}\n\nNetwork: this server serves both Obyte networks at once. Pass "network":"mainnet" or "network":"testnet" to choose; when omitted it defaults to ${config.defaultNetwork}. If the user has not made the network explicit, confirm which network they mean before calling.`;
18
+ }
12
19
  function registerTool(context, tool) {
13
20
  context.server.registerTool(tool.name, {
14
21
  title: tool.title,
15
- description: tool.description,
22
+ description: withNetworkNote(tool.description, context.config),
16
23
  inputSchema: tool.schema,
17
24
  annotations: {
18
25
  title: tool.title,
@@ -22,22 +29,25 @@ function registerTool(context, tool) {
22
29
  ...(tool.dryRun ? {} : { idempotentHint: true })
23
30
  }
24
31
  }, async (args) => {
25
- const text = await executeEnvelope(context.config, tool.name, () => context.client.retryCount, async () => {
32
+ const record = (args ?? {});
33
+ const network = resolveNetwork(record.network, context.config.defaultNetwork);
34
+ const client = context.clients[network];
35
+ const networkConfig = context.config.networks[network];
36
+ const text = await executeEnvelope(envelopeConfig(context.config, network), tool.name, () => client.retryCount, async () => {
26
37
  assertNoSecrets(args);
27
- return tool.handler(args);
38
+ return tool.handler(record, { client, network: networkConfig });
28
39
  });
29
40
  return textResult(text);
30
41
  });
31
42
  }
32
- function recommendedTools(context) {
33
- const { client, config } = context;
43
+ function recommendedTools(_context) {
34
44
  return [
35
45
  {
36
46
  name: "obyte_analyze_address",
37
47
  title: "Analyze Obyte Address",
38
48
  schema: schemas.analyzeAddressSchema,
39
- description: "Recommended first tool for understanding an Obyte address on the configured network. Returns balances and optional definition, profile units, attestations, and bounded history. Use this instead of several raw calls when an agent needs an address overview. Output is a stable JSON envelope and may be truncated.",
40
- handler: async (args) => {
49
+ description: "Recommended first tool for understanding an Obyte address. Returns balances and optional definition, profile units, attestations, and bounded history. Use this instead of several raw calls when an agent needs an address overview. Output is a stable JSON envelope and may be truncated.",
50
+ handler: async (args, { client }) => {
41
51
  const [balances, profileUnits, definition, attestations, history] = await Promise.all([
42
52
  client.getBalances([args.address]),
43
53
  client.getProfileUnits([args.address]),
@@ -53,7 +63,7 @@ function recommendedTools(context) {
53
63
  title: "Analyze Obyte Unit",
54
64
  schema: schemas.analyzeUnitSchema,
55
65
  description: "Recommended tool for inspecting one Obyte unit. Fetches the joint and, when requested, follows the AA response chain for trigger units. Use when the user provides a unit hash and asks what happened. Output is hub data wrapped in a stable JSON envelope.",
56
- handler: async (args) => ({
66
+ handler: async (args, { client }) => ({
57
67
  unit: args.unit,
58
68
  joint: await client.getJoint(args.unit),
59
69
  aa_response_chain: args.include_aa_response_chain ? await client.getAaResponseChain(args.unit).catch(() => null) : undefined
@@ -64,7 +74,7 @@ function recommendedTools(context) {
64
74
  title: "Analyze Autonomous Agent",
65
75
  schema: schemas.analyzeAaSchema,
66
76
  description: "Recommended tool for summarizing an autonomous agent. Returns AA balances, selected state vars by prefix, and optional AA responses. Use for AA debugging or state inspection. State vars are sorted by key and output may be truncated.",
67
- handler: async (args) => ({
77
+ handler: async (args, { client }) => ({
68
78
  address: args.address,
69
79
  balances: args.include_balances ? await client.getAaBalances(args.address) : undefined,
70
80
  state_vars: args.state_var_prefix ? await client.getAaStateVars(args.address, args.state_var_prefix) : undefined,
@@ -75,9 +85,9 @@ function recommendedTools(context) {
75
85
  name: "obyte_resolve_asset",
76
86
  title: "Resolve Obyte Asset",
77
87
  schema: schemas.resolveAssetSchema,
78
- description: "Recommended tool for resolving an asset id or token symbol in the configured registry. Returns asset, symbol, and decimals when available. Registry mappings are convenience metadata, not proof of legitimacy.",
79
- handler: async (args) => resolveAsset(client, args.value, {
80
- configuredRegistryAddress: config.tokenRegistryAddress,
88
+ description: "Recommended tool for resolving an asset id or token symbol in the selected network's registry. Returns asset, symbol, and decimals when available. Registry mappings are convenience metadata, not proof of legitimacy.",
89
+ handler: async (args, { client, network }) => resolveAsset(client, args.value, {
90
+ configuredRegistryAddress: network.tokenRegistryAddress,
81
91
  tokenRegistryAddress: args.token_registry_address
82
92
  })
83
93
  },
@@ -86,15 +96,15 @@ function recommendedTools(context) {
86
96
  title: "Prepare AA Dry Run",
87
97
  schema: schemas.prepareAaDryRunSchema,
88
98
  dryRun: true,
89
- description: "Recommended tool for simulating an autonomous-agent trigger through the configured hub. This does not sign, broadcast, or mutate local state. Dry-run tools are not marked idempotent and are not retried by default.",
90
- handler: async (args) => ({ address: args.address, dry_run: await client.dryRunAa(args.address, args.trigger) })
99
+ description: "Recommended tool for simulating an autonomous-agent trigger through the selected network's hub. This does not sign, broadcast, or mutate local state. Dry-run tools are not marked idempotent and are not retried by default.",
100
+ handler: async (args, { client }) => ({ address: args.address, dry_run: await client.dryRunAa(args.address, args.trigger) })
91
101
  },
92
102
  {
93
103
  name: "obyte_get_portfolio_summary",
94
104
  title: "Get Portfolio Summary",
95
105
  schema: schemas.portfolioSummarySchema,
96
106
  description: "Recommended tool for summarizing balances for up to 20 addresses. Optionally enriches asset ids with symbols and decimals from the selected token registry. Use for user-facing balance explanations rather than raw get_balances.",
97
- handler: async (args) => {
107
+ handler: async (args, { client }) => {
98
108
  const balances = await client.getBalances(args.addresses);
99
109
  return {
100
110
  addresses: args.addresses,
@@ -108,112 +118,125 @@ function recommendedTools(context) {
108
118
  ];
109
119
  }
110
120
  function rawTools(context) {
111
- const { client, config } = context;
112
121
  return [
113
122
  {
114
123
  name: "obyte_get_network_info",
115
124
  title: "Get Obyte Network Info",
116
125
  schema: schemas.networkInfoSchema,
117
- description: "Returns the effective MCP runtime configuration: network, hub URL, token registry, config precedence, limits, and witnesses cache metadata. Use before other calls when network selection matters.",
118
- handler: async () => ({ ...config, witnesses_cache: client.getWitnessesCacheInfo() })
126
+ description: "Returns the effective MCP runtime configuration for both networks: default network, per-network hub URL and token registry, config precedence, limits, and witnesses cache metadata. Use before other calls when network selection matters.",
127
+ handler: async () => ({
128
+ default_network: context.config.defaultNetwork,
129
+ default_network_source: context.config.defaultNetworkSource,
130
+ networks: context.config.networks,
131
+ limits: {
132
+ timeout_ms: context.config.timeoutMs,
133
+ max_concurrency: context.config.maxConcurrency,
134
+ max_output_bytes: context.config.maxOutputBytes,
135
+ source: context.config.limitsSource
136
+ },
137
+ witnesses_cache: {
138
+ mainnet: context.clients.mainnet.getWitnessesCacheInfo(),
139
+ testnet: context.clients.testnet.getWitnessesCacheInfo()
140
+ }
141
+ })
119
142
  },
120
143
  {
121
144
  name: "obyte_get_last_mci",
122
145
  title: "Get Last MCI",
123
- schema: schemas.emptySchema,
124
- description: "Raw hub read. Returns the last main chain index known by the configured Obyte hub.",
125
- handler: async () => client.getLastMci()
146
+ schema: schemas.networkOnlySchema,
147
+ description: "Raw hub read. Returns the last main chain index known by the selected Obyte hub.",
148
+ handler: async (_args, { client }) => client.getLastMci()
126
149
  },
127
150
  {
128
151
  name: "obyte_get_peers",
129
152
  title: "Get Hub Peers",
130
- schema: schemas.emptySchema,
131
- description: "Raw hub read. Returns peers known by the configured Obyte hub. Use for network diagnostics, not address analysis.",
132
- handler: async () => client.getPeers()
153
+ schema: schemas.networkOnlySchema,
154
+ description: "Raw hub read. Returns peers known by the selected Obyte hub. Use for network diagnostics, not address analysis.",
155
+ handler: async (_args, { client }) => client.getPeers()
133
156
  },
134
157
  {
135
158
  name: "obyte_get_witnesses",
136
159
  title: "Get Witnesses",
137
160
  schema: schemas.getWitnessesSchema,
138
- description: "Raw hub read. Returns witnesses for the configured network. Results are cached in memory for 10 minutes per network+hub unless update is true.",
139
- handler: async (args) => client.getWitnesses(args.update)
161
+ description: "Raw hub read. Returns witnesses for the selected network. Results are cached in memory for 10 minutes per network+hub unless update is true.",
162
+ handler: async (args, { client }) => client.getWitnesses(args.update)
140
163
  },
141
164
  {
142
165
  name: "obyte_get_joint",
143
166
  title: "Get Joint",
144
167
  schema: schemas.getJointSchema,
145
- description: "Raw hub read. Fetches the joint for one unit hash from the configured hub.",
146
- handler: async (args) => client.getJoint(args.unit)
168
+ description: "Raw hub read. Fetches the joint for one unit hash from the selected hub.",
169
+ handler: async (args, { client }) => client.getJoint(args.unit)
147
170
  },
148
171
  {
149
172
  name: "obyte_get_balances",
150
173
  title: "Get Balances",
151
174
  schema: schemas.addressesSchema,
152
175
  description: "Raw hub read. Fetches balances for 1 to 20 addresses. Use obyte_get_portfolio_summary for agent-friendly summaries.",
153
- handler: async (args) => client.getBalances(args.addresses)
176
+ handler: async (args, { client }) => client.getBalances(args.addresses)
154
177
  },
155
178
  {
156
179
  name: "obyte_get_profile_units",
157
180
  title: "Get Profile Units",
158
181
  schema: schemas.addressesSchema,
159
182
  description: "Raw hub read. Returns profile units for 1 to 20 addresses when available.",
160
- handler: async (args) => client.getProfileUnits(args.addresses)
183
+ handler: async (args, { client }) => client.getProfileUnits(args.addresses)
161
184
  },
162
185
  {
163
186
  name: "obyte_get_definition",
164
187
  title: "Get Address Definition",
165
188
  schema: schemas.getDefinitionSchema,
166
189
  description: "Raw hub read. Returns the definition of one Obyte address.",
167
- handler: async (args) => client.getDefinition(args.address)
190
+ handler: async (args, { client }) => client.getDefinition(args.address)
168
191
  },
169
192
  {
170
193
  name: "obyte_get_data_feed",
171
194
  title: "Get Data Feed",
172
195
  schema: schemas.getDataFeedSchema,
173
196
  description: "Raw hub read. Reads a data feed by oracle addresses and feed name. Oracle arrays are limited to 10 entries.",
174
- handler: async (args) => client.getDataFeed(args.oracles, args.feed_name, args.ifnone)
197
+ handler: async (args, { client }) => client.getDataFeed(args.oracles, args.feed_name, args.ifnone)
175
198
  },
176
199
  {
177
200
  name: "obyte_get_history",
178
201
  title: "Get Address History",
179
202
  schema: schemas.getHistorySchema,
180
203
  description: "Raw hub read. Returns history for 1 to 20 addresses. If witnesses are omitted, the server uses the 10-minute witnesses cache or fetches witnesses from the hub.",
181
- handler: async (args) => client.getHistory(args.addresses, args.witnesses, args.update_witnesses)
204
+ handler: async (args, { client }) => client.getHistory(args.addresses, args.witnesses, args.update_witnesses)
182
205
  },
183
206
  {
184
207
  name: "obyte_get_attestation",
185
208
  title: "Get Attestation",
186
209
  schema: schemas.getAttestationSchema,
187
210
  description: "Raw hub read. Looks up one attestation by attestor address, field, and value.",
188
- handler: async (args) => client.getAttestation(args.attestor_address, args.field, args.value)
211
+ handler: async (args, { client }) => client.getAttestation(args.attestor_address, args.field, args.value)
189
212
  },
190
213
  {
191
214
  name: "obyte_get_attestations",
192
215
  title: "Get Address Attestations",
193
216
  schema: schemas.getAttestationsSchema,
194
217
  description: "Raw hub read. Returns attestations associated with one address.",
195
- handler: async (args) => client.getAttestations(args.address)
218
+ handler: async (args, { client }) => client.getAttestations(args.address)
196
219
  },
197
220
  {
198
221
  name: "obyte_get_aa_response_chain",
199
222
  title: "Get AA Response Chain",
200
223
  schema: schemas.triggerUnitSchema,
201
224
  description: "Raw hub read. Returns the autonomous-agent response chain for a trigger unit.",
202
- handler: async (args) => client.getAaResponseChain(args.trigger_unit)
225
+ handler: async (args, { client }) => client.getAaResponseChain(args.trigger_unit)
203
226
  },
204
227
  {
205
228
  name: "obyte_get_aa_responses",
206
229
  title: "Get AA Responses",
207
230
  schema: schemas.aaOrAasSchema,
208
231
  description: "Raw hub read. Returns AA responses for one AA address or up to 20 AA addresses.",
209
- handler: async (args) => client.getAaResponses(args.aa ?? args.aas)
232
+ handler: async (args, { client }) => client.getAaResponses(args.aa ?? args.aas)
210
233
  },
211
234
  {
212
235
  name: "obyte_get_aas_by_base_aas",
213
236
  title: "Get AAs By Base AAs",
214
237
  schema: schemas.baseAaOrAasSchema,
215
238
  description: "Raw hub read. Returns AAs derived from one base AA or up to 20 base AAs.",
216
- handler: async (args) => client.getAasByBaseAas(args.base_aa ?? args.base_aas)
239
+ handler: async (args, { client }) => client.getAasByBaseAas(args.base_aa ?? args.base_aas)
217
240
  },
218
241
  {
219
242
  name: "obyte_dry_run_aa",
@@ -221,41 +244,41 @@ function rawTools(context) {
221
244
  schema: schemas.dryRunAaSchema,
222
245
  dryRun: true,
223
246
  description: "Raw hub dry run. Simulates triggering an autonomous agent with a JSON trigger payload. It does not sign or broadcast. Not retried by default and not marked idempotent.",
224
- handler: async (args) => client.dryRunAa(args.address, args.trigger)
247
+ handler: async (args, { client }) => client.dryRunAa(args.address, args.trigger)
225
248
  },
226
249
  {
227
250
  name: "obyte_execute_getter",
228
251
  title: "Execute AA Getter",
229
252
  schema: schemas.executeGetterSchema,
230
253
  description: "Raw hub read. Executes an autonomous-agent getter with optional JSON args and returns the getter result.",
231
- handler: async (args) => client.executeGetter(args.address, args.getter, args.args)
254
+ handler: async (args, { client }) => client.executeGetter(args.address, args.getter, args.args)
232
255
  },
233
256
  {
234
257
  name: "obyte_get_aa_balances",
235
258
  title: "Get AA Balances",
236
259
  schema: schemas.aaAddressSchema,
237
260
  description: "Raw hub read. Returns balances held by one autonomous agent address.",
238
- handler: async (args) => client.getAaBalances(args.address)
261
+ handler: async (args, { client }) => client.getAaBalances(args.address)
239
262
  },
240
263
  {
241
264
  name: "obyte_get_aa_state_vars",
242
265
  title: "Get AA State Vars",
243
266
  schema: schemas.getAaStateVarsSchema,
244
267
  description: "Raw hub read. Returns autonomous-agent state variables, optionally bounded by prefix/range. Prefix length is limited to 128 characters. Map-like output is sorted by key.",
245
- handler: async (args) => client.getAaStateVars(args.address, args.var_prefix, args.var_prefix_from, args.var_prefix_to)
268
+ handler: async (args, { client }) => client.getAaStateVars(args.address, args.var_prefix, args.var_prefix_from, args.var_prefix_to)
246
269
  }
247
270
  ];
248
271
  }
249
- function symbolTools(context) {
250
- const { client, config } = context;
272
+ function symbolTools(_context) {
251
273
  return [
252
274
  {
253
275
  name: "obyte_get_official_token_registry_address",
254
276
  title: "Get Token Registry Address",
255
277
  schema: schemas.registrySchema,
256
- description: "Returns the selected token registry address. The mainnet default comes from obyte.js; custom and testnet registries must be explicitly trusted by the user.",
257
- handler: async (args) => ({
258
- token_registry_address: args.token_registry_address ?? getOfficialTokenRegistryAddress(config.tokenRegistryAddress),
278
+ description: "Returns the token registry address for the selected network. The mainnet default comes from obyte.js; custom and testnet registries must be explicitly trusted by the user.",
279
+ handler: async (args, { network }) => ({
280
+ network: network.network,
281
+ token_registry_address: args.token_registry_address ?? network.tokenRegistryAddress ?? null,
259
282
  trust_model: "Registry mappings are metadata convenience, not proof of asset legitimacy."
260
283
  })
261
284
  },
@@ -264,8 +287,8 @@ function symbolTools(context) {
264
287
  title: "Get Symbol By Asset",
265
288
  schema: schemas.symbolByAssetSchema,
266
289
  description: "Resolves an Obyte asset id to a token symbol through the selected registry. base/null maps to GBYTE; unknown assets fall back to the first sanitized asset characters as in obyte.js.",
267
- handler: async (args) => getSymbolByAsset(client, args.asset, {
268
- configuredRegistryAddress: config.tokenRegistryAddress,
290
+ handler: async (args, { client, network }) => getSymbolByAsset(client, args.asset, {
291
+ configuredRegistryAddress: network.tokenRegistryAddress,
269
292
  tokenRegistryAddress: args.token_registry_address
270
293
  })
271
294
  },
@@ -274,8 +297,8 @@ function symbolTools(context) {
274
297
  title: "Get Asset By Symbol",
275
298
  schema: schemas.assetBySymbolSchema,
276
299
  description: "Resolves a token symbol to an Obyte asset id through the selected registry. GBYTE, MBYTE, KBYTE, and BYTE resolve to base.",
277
- handler: async (args) => getAssetBySymbol(client, args.symbol, {
278
- configuredRegistryAddress: config.tokenRegistryAddress,
300
+ handler: async (args, { client, network }) => getAssetBySymbol(client, args.symbol, {
301
+ configuredRegistryAddress: network.tokenRegistryAddress,
279
302
  tokenRegistryAddress: args.token_registry_address
280
303
  })
281
304
  },
@@ -284,8 +307,8 @@ function symbolTools(context) {
284
307
  title: "Get Decimals By Symbol Or Asset",
285
308
  schema: schemas.decimalsSchema,
286
309
  description: "Returns decimals for base aliases or a registry-known token symbol/asset. base and GBYTE use 9, MBYTE 6, KBYTE 3, BYTE 0. Registry data is untrusted metadata.",
287
- handler: async (args) => getDecimalsBySymbolOrAsset(client, args.symbol_or_asset, {
288
- configuredRegistryAddress: config.tokenRegistryAddress,
310
+ handler: async (args, { client, network }) => getDecimalsBySymbolOrAsset(client, args.symbol_or_asset, {
311
+ configuredRegistryAddress: network.tokenRegistryAddress,
289
312
  tokenRegistryAddress: args.token_registry_address
290
313
  })
291
314
  }
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,30 +1,45 @@
1
1
  export type Network = "mainnet" | "testnet";
2
+ export type ConfigSource = "env" | "cli" | "default";
2
3
  export type JsonPrimitive = string | number | boolean | null;
3
4
  export type JsonValue = JsonPrimitive | JsonObject | JsonValue[];
4
5
  export interface JsonObject {
5
6
  [key: string]: JsonValue;
6
7
  }
7
8
  export type ErrorCode = "VALIDATION_ERROR" | "CONFIG_ERROR" | "HUB_ERROR" | "TIMEOUT" | "NETWORK_ERROR" | "OUTPUT_TOO_LARGE" | "SECRET_INPUT_REJECTED" | "INTERNAL_ERROR";
8
- export interface RuntimeConfig {
9
+ export interface NetworkConfig {
9
10
  network: Network;
10
11
  hubAddress: string;
11
12
  tokenRegistryAddress: string | undefined;
13
+ hubSource: ConfigSource;
14
+ tokenRegistrySource: ConfigSource | "unset";
15
+ }
16
+ export interface RuntimeConfig {
17
+ defaultNetwork: Network;
18
+ defaultNetworkSource: ConfigSource;
19
+ networks: Record<Network, NetworkConfig>;
12
20
  timeoutMs: number;
13
21
  maxConcurrency: number;
14
22
  maxOutputBytes: number;
15
- source: {
16
- network: "env" | "cli" | "default";
17
- hubAddress: "env" | "cli" | "default";
18
- tokenRegistryAddress: "env" | "cli" | "default" | "unset";
19
- timeoutMs: "env" | "cli" | "default";
20
- maxConcurrency: "env" | "cli" | "default";
21
- maxOutputBytes: "env" | "cli" | "default";
23
+ limitsSource: {
24
+ timeoutMs: ConfigSource;
25
+ maxConcurrency: ConfigSource;
26
+ maxOutputBytes: ConfigSource;
22
27
  };
23
28
  }
29
+ /** Minimal per-call view used when building the response envelope. */
30
+ export interface EnvelopeConfig {
31
+ network: Network;
32
+ hubAddress: string;
33
+ maxOutputBytes: number;
34
+ }
24
35
  export interface CliOptions {
25
36
  network?: Network | undefined;
26
37
  hubAddress?: string | undefined;
27
38
  tokenRegistryAddress?: string | undefined;
39
+ mainnetHubAddress?: string | undefined;
40
+ testnetHubAddress?: string | undefined;
41
+ mainnetTokenRegistryAddress?: string | undefined;
42
+ testnetTokenRegistryAddress?: string | undefined;
28
43
  timeoutMs?: number | undefined;
29
44
  maxConcurrency?: number | undefined;
30
45
  maxOutputBytes?: number | undefined;
@@ -57,7 +72,7 @@ export interface ErrorEnvelope {
57
72
  }
58
73
  export type ToolEnvelope = SuccessEnvelope | ErrorEnvelope;
59
74
  export interface ToolExecutionContext {
60
- config: RuntimeConfig;
75
+ config: EnvelopeConfig;
61
76
  requestId: string;
62
77
  toolName: string;
63
78
  startedAt: number;
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "obyte-mcp",
3
- "version": "0.1.0",
4
- "description": "Local stdio MCP server for querying Obyte hubs.",
3
+ "version": "0.1.2",
4
+ "mcpName": "io.github.taump/obyte-mcp",
5
+ "description": "Local stdio MCP server for querying Obyte mainnet and testnet hubs.",
5
6
  "type": "module",
6
7
  "bin": {
7
8
  "obyte-mcp": "dist/index.js"
@@ -9,7 +10,8 @@
9
10
  "files": [
10
11
  "dist",
11
12
  "README.md",
12
- "LICENSE"
13
+ "LICENSE",
14
+ "server.json"
13
15
  ],
14
16
  "engines": {
15
17
  "node": ">=20"
@@ -19,6 +21,9 @@
19
21
  "typecheck": "tsc -p tsconfig.json --noEmit",
20
22
  "test": "vitest run",
21
23
  "test:watch": "vitest",
24
+ "setup": "node dist/index.js setup",
25
+ "register": "node dist/index.js install",
26
+ "bundle": "npm run build && npx -y @anthropic-ai/mcpb pack . obyte-mcp.mcpb",
22
27
  "prepublishOnly": "npm run typecheck && npm test && npm run build"
23
28
  },
24
29
  "keywords": [