@ggoldani/agent-passport-mcp 0.1.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.
Files changed (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +99 -0
  3. package/build/api-bridge/analytics.d.ts +53 -0
  4. package/build/api-bridge/analytics.js +13 -0
  5. package/build/api-bridge/badge.d.ts +16 -0
  6. package/build/api-bridge/badge.js +9 -0
  7. package/build/api-bridge/client.d.ts +3 -0
  8. package/build/api-bridge/client.js +50 -0
  9. package/build/api-bridge/index.d.ts +2 -0
  10. package/build/api-bridge/index.js +66 -0
  11. package/build/api-bridge/search.d.ts +32 -0
  12. package/build/api-bridge/search.js +26 -0
  13. package/build/api-bridge/trust-check.d.ts +16 -0
  14. package/build/api-bridge/trust-check.js +16 -0
  15. package/build/generated/src/config.d.ts +14 -0
  16. package/build/generated/src/config.js +39 -0
  17. package/build/generated/src/generated/meta.d.ts +10 -0
  18. package/build/generated/src/generated/meta.js +10 -0
  19. package/build/generated/src/generated/schemas.d.ts +94 -0
  20. package/build/generated/src/generated/schemas.js +107 -0
  21. package/build/generated/src/generated/specEntries.d.ts +2 -0
  22. package/build/generated/src/generated/specEntries.js +33 -0
  23. package/build/generated/src/generated/typedClient.d.ts +117 -0
  24. package/build/generated/src/generated/typedClient.js +20 -0
  25. package/build/generated/src/index.d.ts +2 -0
  26. package/build/generated/src/index.js +17 -0
  27. package/build/generated/src/lib/contractInvoke.d.ts +20 -0
  28. package/build/generated/src/lib/contractInvoke.js +87 -0
  29. package/build/generated/src/lib/errors.d.ts +15 -0
  30. package/build/generated/src/lib/errors.js +137 -0
  31. package/build/generated/src/lib/policy.d.ts +5 -0
  32. package/build/generated/src/lib/policy.js +8 -0
  33. package/build/generated/src/lib/redact.d.ts +2 -0
  34. package/build/generated/src/lib/redact.js +42 -0
  35. package/build/generated/src/lib/stellarClient.d.ts +10 -0
  36. package/build/generated/src/lib/stellarClient.js +61 -0
  37. package/build/generated/src/registerContractTools.d.ts +3 -0
  38. package/build/generated/src/registerContractTools.js +160 -0
  39. package/build/generated/src/server.d.ts +3 -0
  40. package/build/generated/src/server.js +10 -0
  41. package/build/index.d.ts +2 -0
  42. package/build/index.js +24 -0
  43. package/package.json +58 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 ggoldani
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ authors or copyright holders be liable for any claim, damages or other
19
+ liability, whether in an action of contract, tort or otherwise, arising from,
20
+ out of or in connection with the software or the use or other dealings in the
21
+ software.
package/README.md ADDED
@@ -0,0 +1,99 @@
1
+ # @ggoldani/agent-passport-mcp
2
+
3
+ MCP server for the [AgentPassport](https://github.com/ggoldani/agent-passport) trust registry on Stellar. 18 contract tools + 4 REST API bridge tools + health check.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @ggoldani/agent-passport-mcp
9
+ ```
10
+
11
+ ## Setup
12
+
13
+ Configure your MCP client:
14
+
15
+ **Cursor / Claude Desktop:**
16
+ ```json
17
+ {
18
+ "mcpServers": {
19
+ "agent-passport": {
20
+ "type": "stdio",
21
+ "command": "npx",
22
+ "args": ["@ggoldani/agent-passport-mcp"],
23
+ "env": {
24
+ "STELLAR_NETWORK": "testnet",
25
+ "STELLAR_CONTRACT_ID": "CAYIR5ON6NDKCQ2KLPFHDJTNKEQHSTJP3ZBMRVV4QPEEAI5ZGLN4A7VQ",
26
+ "AGENTPASSPORT_API_URL": "http://localhost:3002"
27
+ }
28
+ }
29
+ }
30
+ }
31
+ ```
32
+
33
+ **With write access (admin operations):**
34
+ ```json
35
+ {
36
+ "mcpServers": {
37
+ "agent-passport": {
38
+ "type": "stdio",
39
+ "command": "npx",
40
+ "args": ["@ggoldani/agent-passport-mcp"],
41
+ "env": {
42
+ "STELLAR_NETWORK": "testnet",
43
+ "STELLAR_CONTRACT_ID": "CAYIR5ON6NDKCQ2KLPFHDJTNKEQHSTJP3ZBMRVV4QPEEAI5ZGLN4A7VQ",
44
+ "STELLAR_SECRET_KEY": "S...",
45
+ "AGENTPASSPORT_API_URL": "http://localhost:3002"
46
+ }
47
+ }
48
+ }
49
+ }
50
+ ```
51
+
52
+ ## Environment Variables
53
+
54
+ | Variable | Required | Default | Purpose |
55
+ |----------|----------|---------|---------|
56
+ | `STELLAR_NETWORK` | No | `testnet` | Stellar network |
57
+ | `STELLAR_CONTRACT_ID` | Yes | — | Deployed contract ID |
58
+ | `STELLAR_RPC_URL` | No | Network default | Soroban RPC URL |
59
+ | `STELLAR_SECRET_KEY` | No | — | For write operations |
60
+ | `AGENTPASSPORT_API_URL` | No | `http://localhost:3002` | REST API base URL |
61
+
62
+ ## Tools
63
+
64
+ ### Contract Tools (18)
65
+ Auto-generated from contract WASM via `@ggoldani/stellarmcp`. All prefixed with `ap_`:
66
+
67
+ | Tool | Description |
68
+ |------|-------------|
69
+ | `ap_get_agent` | Fetch agent profile by address |
70
+ | `ap_list_agents` | Paginated agent list |
71
+ | `ap_get_config` | Contract configuration |
72
+ | `ap_get_relayers` | Authorized relayers |
73
+ | `ap_get_rating` | Rating for an interaction |
74
+ | `ap_list_agent_interactions` | Interaction history |
75
+ | `ap_register_agent` | Register new agent |
76
+ | `ap_update_profile` | Update agent profile |
77
+ | `ap_deregister_agent` | Remove agent |
78
+ | `ap_register_interaction` | Record interaction |
79
+ | `ap_submit_rating` | Rate an interaction (1-100) |
80
+ | `ap_add_relayer` | Authorize relayer |
81
+ | `ap_remove_relayer` | Revoke relayer |
82
+ | `ap_transfer_admin` | Initiate admin transfer |
83
+ | `ap_accept_admin` | Accept admin transfer |
84
+ | `ap_cancel_admin_transfer` | Cancel pending transfer |
85
+ | `ap_init` | Initialize contract |
86
+
87
+ ### API Bridge Tools (4)
88
+ Wrap the REST API for enriched data:
89
+ - `agent_search` — Full-text search with filters
90
+ - `agent_analytics` — Volume, score trajectory, rating breakdown
91
+ - `agent_badge_stats` — Trust badge data
92
+ - `agent_trust_check` — Quick trust verification
93
+
94
+ ### Health (1)
95
+ - `health` — MCP server status check
96
+
97
+ ## License
98
+
99
+ MIT
@@ -0,0 +1,53 @@
1
+ import { z } from "zod";
2
+ export declare const analyticsSchema: z.ZodObject<{
3
+ address: z.ZodString;
4
+ period: z.ZodOptional<z.ZodEnum<{
5
+ "7d": "7d";
6
+ "30d": "30d";
7
+ "90d": "90d";
8
+ all: "all";
9
+ }>>;
10
+ }, z.core.$strip>;
11
+ export type AnalyticsParams = z.infer<typeof analyticsSchema>;
12
+ interface AnalyticsResponse {
13
+ address: string;
14
+ period: string;
15
+ volume_over_time: Array<{
16
+ date: string;
17
+ volume: string;
18
+ }>;
19
+ counterparty_growth: Array<{
20
+ date: string;
21
+ unique_counterparties: number;
22
+ }>;
23
+ score_trajectory: Array<{
24
+ date: string;
25
+ score: number;
26
+ }>;
27
+ rating_breakdown: {
28
+ quality: {
29
+ avg: number;
30
+ count: number;
31
+ };
32
+ speed: {
33
+ avg: number;
34
+ count: number;
35
+ };
36
+ reliability: {
37
+ avg: number;
38
+ count: number;
39
+ };
40
+ communication: {
41
+ avg: number;
42
+ count: number;
43
+ };
44
+ };
45
+ summary: {
46
+ total_volume: string;
47
+ total_interactions: number;
48
+ unique_counterparties: number;
49
+ avg_rating: number;
50
+ };
51
+ }
52
+ export declare function agentAnalytics(params: AnalyticsParams): Promise<AnalyticsResponse>;
53
+ export {};
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ import { apiFetch, validateStellarAddress } from "./client.js";
3
+ export const analyticsSchema = z.object({
4
+ address: z.string().describe("Stellar address of the agent (G...)"),
5
+ period: z.enum(["7d", "30d", "90d", "all"]).optional().describe("Time period for analytics"),
6
+ });
7
+ export async function agentAnalytics(params) {
8
+ validateStellarAddress(params.address);
9
+ const query = {};
10
+ if (params.period)
11
+ query.period = params.period;
12
+ return apiFetch(`/agents/${params.address}/stats`, query);
13
+ }
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+ export declare const badgeSchema: z.ZodObject<{
3
+ address: z.ZodString;
4
+ }, z.core.$strip>;
5
+ export type BadgeParams = z.infer<typeof badgeSchema>;
6
+ interface BadgeStatsResponse {
7
+ address: string;
8
+ name: string;
9
+ trust_tier: string;
10
+ score: number;
11
+ verified_interactions_count: number;
12
+ total_economic_volume: string;
13
+ total_counterparties: number;
14
+ }
15
+ export declare function agentBadgeStats(params: BadgeParams): Promise<BadgeStatsResponse>;
16
+ export {};
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ import { apiFetch, validateStellarAddress } from "./client.js";
3
+ export const badgeSchema = z.object({
4
+ address: z.string().describe("Stellar address of the agent (G...)"),
5
+ });
6
+ export async function agentBadgeStats(params) {
7
+ validateStellarAddress(params.address);
8
+ return apiFetch(`/badge-stats/${params.address}`);
9
+ }
@@ -0,0 +1,3 @@
1
+ export declare function validateStellarAddress(address: string): void;
2
+ export declare function getApiUrl(): string;
3
+ export declare function apiFetch<T>(path: string, params?: Record<string, string>): Promise<T>;
@@ -0,0 +1,50 @@
1
+ const STELLAR_ADDRESS_RE = /^G[A-Z2-7]{55}$/;
2
+ export function validateStellarAddress(address) {
3
+ if (!STELLAR_ADDRESS_RE.test(address)) {
4
+ if (!address.startsWith("G")) {
5
+ throw new Error(`"${address}" is not a valid Stellar public key. Stellar addresses start with "G" followed by 56 characters (e.g., GBVDQYSFGXEACZD7LG3NI7UAGLOP72D5SDDNJTHHWHD5EYDZHTPLG2IR). Make sure you're passing the agent's public key, not a secret key or contract ID.`);
6
+ }
7
+ throw new Error(`"${address}" looks like a Stellar address but has the wrong length (got ${address.length}, expected 56). Stellar public keys are 56 characters starting with "G" (e.g., GBVDQYSFGXEACZD7LG3NI7UAGLOP72D5SDDNJTHHWHD5EYDZHTPLG2IR). Double-check the address and try again.`);
8
+ }
9
+ }
10
+ export function getApiUrl() {
11
+ const url = process.env.AGENTPASSPORT_API_URL || "http://localhost:3002";
12
+ if (!url.startsWith("http://") && !url.startsWith("https://")) {
13
+ throw new Error(`AGENTPASSPORT_API_URL must be a valid URL starting with "http://" or "https://". Got: "${url}".`);
14
+ }
15
+ return url.replace(/\/+$/, "");
16
+ }
17
+ export async function apiFetch(path, params) {
18
+ const baseUrl = getApiUrl();
19
+ const url = new URL(path, baseUrl);
20
+ if (params) {
21
+ for (const [key, value] of Object.entries(params)) {
22
+ if (value !== undefined && value !== "") {
23
+ url.searchParams.set(key, value);
24
+ }
25
+ }
26
+ }
27
+ try {
28
+ const res = await fetch(url.toString());
29
+ if (!res.ok) {
30
+ const body = await res.text().catch(() => "unknown error");
31
+ if (res.status === 404) {
32
+ throw new Error(`No agent found at this address. The agent may not be registered on AgentPassport yet, or the address might be incorrect. You can search for registered agents using the agent_search tool.`);
33
+ }
34
+ if (res.status === 429) {
35
+ throw new Error(`Too many requests — the AgentPassport API is rate-limiting this client. Wait a moment and try again.`);
36
+ }
37
+ if (res.status >= 500) {
38
+ throw new Error(`The AgentPassport API server encountered an internal error (HTTP ${res.status}). This is not your fault — try again in a few moments. If it persists, check the AgentPassport status page or server logs.`);
39
+ }
40
+ throw new Error(`The AgentPassport API returned an error (HTTP ${res.status}): ${body.slice(0, 200)}`);
41
+ }
42
+ return (await res.json());
43
+ }
44
+ catch (error) {
45
+ if (error instanceof TypeError) {
46
+ throw new Error(`Could not reach the AgentPassport API at ${baseUrl}. Make sure the API server is running and accessible. If you're running it locally, start it with "npm run start:api" from the project root. You can also set AGENTPASSPORT_API_URL to point to a different server.`);
47
+ }
48
+ throw error;
49
+ }
50
+ }
@@ -0,0 +1,2 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerApiBridgeTools(server: McpServer): void;
@@ -0,0 +1,66 @@
1
+ import { searchSchema, agentSearch } from "./search.js";
2
+ import { analyticsSchema, agentAnalytics } from "./analytics.js";
3
+ import { badgeSchema, agentBadgeStats } from "./badge.js";
4
+ import { trustCheckSchema, agentTrustCheck } from "./trust-check.js";
5
+ export function registerApiBridgeTools(server) {
6
+ server.tool("agent_search", "Search agents with full-text search and filters (score, tags, interactions, volume). Returns paginated results with trust tiers.", searchSchema.shape, async (params) => {
7
+ try {
8
+ const result = await agentSearch(params);
9
+ return {
10
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
11
+ };
12
+ }
13
+ catch (error) {
14
+ const message = error instanceof Error ? error.message : String(error);
15
+ return {
16
+ content: [{ type: "text", text: `agent_search failed: ${message}` }],
17
+ isError: true,
18
+ };
19
+ }
20
+ });
21
+ server.tool("agent_analytics", "Get analytics for an agent — volume over time, score trajectory, rating breakdown, and summary stats.", analyticsSchema.shape, async (params) => {
22
+ try {
23
+ const result = await agentAnalytics(params);
24
+ return {
25
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
26
+ };
27
+ }
28
+ catch (error) {
29
+ const message = error instanceof Error ? error.message : String(error);
30
+ return {
31
+ content: [{ type: "text", text: `agent_analytics failed: ${message}` }],
32
+ isError: true,
33
+ };
34
+ }
35
+ });
36
+ server.tool("agent_badge_stats", "Get trust badge data for an agent — trust tier, score, interactions, counterparties, volume. Use for embedding trust badges.", badgeSchema.shape, async (params) => {
37
+ try {
38
+ const result = await agentBadgeStats(params);
39
+ return {
40
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
41
+ };
42
+ }
43
+ catch (error) {
44
+ const message = error instanceof Error ? error.message : String(error);
45
+ return {
46
+ content: [{ type: "text", text: `agent_badge_stats failed: ${message}` }],
47
+ isError: true,
48
+ };
49
+ }
50
+ });
51
+ server.tool("agent_trust_check", "Quick trust verification — check if an agent meets minimum score and interaction thresholds. Returns pass/fail with reasons.", trustCheckSchema.shape, async (params) => {
52
+ try {
53
+ const result = await agentTrustCheck(params);
54
+ return {
55
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
56
+ };
57
+ }
58
+ catch (error) {
59
+ const message = error instanceof Error ? error.message : String(error);
60
+ return {
61
+ content: [{ type: "text", text: `agent_trust_check failed: ${message}` }],
62
+ isError: true,
63
+ };
64
+ }
65
+ });
66
+ }
@@ -0,0 +1,32 @@
1
+ import { z } from "zod";
2
+ export declare const searchSchema: z.ZodObject<{
3
+ q: z.ZodOptional<z.ZodString>;
4
+ tags: z.ZodOptional<z.ZodString>;
5
+ minScore: z.ZodOptional<z.ZodNumber>;
6
+ maxScore: z.ZodOptional<z.ZodNumber>;
7
+ sortBy: z.ZodOptional<z.ZodEnum<{
8
+ score: "score";
9
+ interactions: "interactions";
10
+ volume: "volume";
11
+ newest: "newest";
12
+ relevance: "relevance";
13
+ }>>;
14
+ limit: z.ZodOptional<z.ZodNumber>;
15
+ }, z.core.$strip>;
16
+ export type SearchParams = z.infer<typeof searchSchema>;
17
+ interface AgentResponse {
18
+ owner_address: string;
19
+ name: string;
20
+ description: string;
21
+ tags: string;
22
+ score: number;
23
+ verified_interactions_count: number;
24
+ trust_tier: string;
25
+ }
26
+ interface PaginatedResponse {
27
+ data: AgentResponse[];
28
+ total: number;
29
+ has_more: boolean;
30
+ }
31
+ export declare function agentSearch(params: SearchParams): Promise<PaginatedResponse>;
32
+ export {};
@@ -0,0 +1,26 @@
1
+ import { z } from "zod";
2
+ import { apiFetch } from "./client.js";
3
+ export const searchSchema = z.object({
4
+ q: z.string().optional().describe("Full-text search query"),
5
+ tags: z.string().optional().describe("Comma-separated tags to filter"),
6
+ minScore: z.number().int().min(0).max(100).optional().describe("Minimum score filter"),
7
+ maxScore: z.number().int().min(0).max(100).optional().describe("Maximum score filter"),
8
+ sortBy: z.enum(["score", "interactions", "volume", "newest", "relevance"]).optional().describe("Sort field"),
9
+ limit: z.number().int().min(1).max(50).optional().describe("Results per page (1-50)"),
10
+ });
11
+ export async function agentSearch(params) {
12
+ const query = {};
13
+ if (params.q)
14
+ query.q = params.q;
15
+ if (params.tags)
16
+ query.tags = params.tags;
17
+ if (params.minScore !== undefined)
18
+ query.minScore = String(params.minScore);
19
+ if (params.maxScore !== undefined)
20
+ query.maxScore = String(params.maxScore);
21
+ if (params.sortBy)
22
+ query.sortBy = params.sortBy;
23
+ if (params.limit !== undefined)
24
+ query.limit = String(params.limit);
25
+ return apiFetch("/agents", query);
26
+ }
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+ export declare const trustCheckSchema: z.ZodObject<{
3
+ address: z.ZodString;
4
+ minScore: z.ZodOptional<z.ZodNumber>;
5
+ minInteractions: z.ZodOptional<z.ZodNumber>;
6
+ }, z.core.$strip>;
7
+ export type TrustCheckParams = z.infer<typeof trustCheckSchema>;
8
+ interface TrustCheckResponse {
9
+ passed: boolean;
10
+ reasons: string[];
11
+ trust_tier: string;
12
+ score: number;
13
+ verified_interactions_count: number;
14
+ }
15
+ export declare function agentTrustCheck(params: TrustCheckParams): Promise<TrustCheckResponse>;
16
+ export {};
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+ import { apiFetch, validateStellarAddress } from "./client.js";
3
+ export const trustCheckSchema = z.object({
4
+ address: z.string().describe("Stellar address of the agent (G...)"),
5
+ minScore: z.number().int().min(0).max(100).optional().describe("Minimum trust score required"),
6
+ minInteractions: z.number().int().min(0).optional().describe("Minimum verified interactions required"),
7
+ });
8
+ export async function agentTrustCheck(params) {
9
+ validateStellarAddress(params.address);
10
+ const query = {};
11
+ if (params.minScore !== undefined)
12
+ query.minScore = String(params.minScore);
13
+ if (params.minInteractions !== undefined)
14
+ query.minInteractions = String(params.minInteractions);
15
+ return apiFetch(`/trust-check/${params.address}`, query);
16
+ }
@@ -0,0 +1,14 @@
1
+ export type AutoSignPolicy = "safe" | "guarded" | "expert";
2
+ export interface AppConfig {
3
+ network: "mainnet" | "testnet";
4
+ rpcUrl?: string;
5
+ horizonUrl?: string;
6
+ requestTimeoutMs: number;
7
+ contractId: string;
8
+ secretKey?: string;
9
+ autoSignPolicy?: AutoSignPolicy;
10
+ autoSign: boolean;
11
+ autoSignLimit: number;
12
+ networkPassphrase: string;
13
+ }
14
+ export declare function loadConfig(): AppConfig;
@@ -0,0 +1,39 @@
1
+ import { Networks, StrKey } from "@stellar/stellar-sdk";
2
+ import { z } from "zod";
3
+ const EnvSchema = z.object({
4
+ STELLAR_NETWORK: z.enum(["mainnet", "testnet"]).default("testnet"),
5
+ STELLAR_RPC_URL: z.string().url().optional(),
6
+ STELLAR_HORIZON_URL: z.string().url().optional(),
7
+ STELLAR_REQUEST_TIMEOUT_MS: z.coerce.number().int().positive().max(30_000).default(30_000),
8
+ STELLAR_CONTRACT_ID: z
9
+ .string()
10
+ .trim()
11
+ .min(1)
12
+ .refine((value) => StrKey.isValidContract(value), {
13
+ message: "Invalid Soroban contract id (expected C... contract strkey)."
14
+ }),
15
+ STELLAR_SECRET_KEY: z.string().optional(),
16
+ STELLAR_AUTO_SIGN_POLICY: z.enum(["safe", "guarded", "expert"]).optional(),
17
+ STELLAR_AUTO_SIGN: z.coerce.boolean().default(false),
18
+ STELLAR_AUTO_SIGN_LIMIT: z.coerce.number().min(0).default(0)
19
+ });
20
+ export function loadConfig() {
21
+ const parsed = EnvSchema.safeParse(process.env);
22
+ if (!parsed.success) {
23
+ throw new Error(`Invalid environment: ${parsed.error.message}`);
24
+ }
25
+ const env = parsed.data;
26
+ const passphrase = env.STELLAR_NETWORK === "mainnet" ? Networks.PUBLIC : Networks.TESTNET;
27
+ return {
28
+ network: env.STELLAR_NETWORK,
29
+ rpcUrl: env.STELLAR_RPC_URL,
30
+ horizonUrl: env.STELLAR_HORIZON_URL,
31
+ requestTimeoutMs: env.STELLAR_REQUEST_TIMEOUT_MS,
32
+ contractId: env.STELLAR_CONTRACT_ID,
33
+ secretKey: env.STELLAR_SECRET_KEY,
34
+ autoSignPolicy: env.STELLAR_AUTO_SIGN_POLICY,
35
+ autoSign: env.STELLAR_AUTO_SIGN,
36
+ autoSignLimit: env.STELLAR_AUTO_SIGN_LIMIT,
37
+ networkPassphrase: passphrase
38
+ };
39
+ }
@@ -0,0 +1,10 @@
1
+ /** Generator metadata and compatibility expectations. */
2
+ export declare const GENERATOR_ARTIFACT_VERSION = "1";
3
+ export declare const STELLARMCP_GENERATOR_SEMVER = "0.1.7";
4
+ export declare const SPEC_FINGERPRINT = "8eb756002ea822fe";
5
+ /**
6
+ * Compatibility: this layout (artifact v1) targets MCP SDK and Stellar SDK versions
7
+ * pinned by the generating StellarMCP release (`0.1.7`). Re-run code generation after upgrading
8
+ * the parent generator or changing the contract interface.
9
+ */
10
+ export declare const COMPATIBILITY_NOTE = "Generated package must use the same major MCP protocol expectations as @modelcontextprotocol/sdk v1.x and @stellar/stellar-sdk v14.x family unless you regenerate with a newer stellarmcp-generate.";
@@ -0,0 +1,10 @@
1
+ /** Generator metadata and compatibility expectations. */
2
+ export const GENERATOR_ARTIFACT_VERSION = "1";
3
+ export const STELLARMCP_GENERATOR_SEMVER = "0.1.7";
4
+ export const SPEC_FINGERPRINT = "8eb756002ea822fe";
5
+ /**
6
+ * Compatibility: this layout (artifact v1) targets MCP SDK and Stellar SDK versions
7
+ * pinned by the generating StellarMCP release (`0.1.7`). Re-run code generation after upgrading
8
+ * the parent generator or changing the contract interface.
9
+ */
10
+ export const COMPATIBILITY_NOTE = "Generated package must use the same major MCP protocol expectations as @modelcontextprotocol/sdk v1.x and @stellar/stellar-sdk v14.x family unless you regenerate with a newer stellarmcp-generate.";
@@ -0,0 +1,94 @@
1
+ import { z } from "zod";
2
+ export declare const initInputSchema: {
3
+ contractId: z.ZodOptional<z.ZodString>;
4
+ sourceAccount: z.ZodString;
5
+ admin: z.ZodString;
6
+ authorized_relayer: z.ZodString;
7
+ };
8
+ export declare const get_agentInputSchema: {
9
+ contractId: z.ZodOptional<z.ZodString>;
10
+ sourceAccount: z.ZodString;
11
+ owner_address: z.ZodString;
12
+ };
13
+ export declare const get_configInputSchema: {
14
+ contractId: z.ZodOptional<z.ZodString>;
15
+ sourceAccount: z.ZodString;
16
+ };
17
+ export declare const get_ratingInputSchema: {
18
+ contractId: z.ZodOptional<z.ZodString>;
19
+ sourceAccount: z.ZodString;
20
+ interaction_tx_hash: z.ZodString;
21
+ };
22
+ export declare const add_relayerInputSchema: {
23
+ contractId: z.ZodOptional<z.ZodString>;
24
+ sourceAccount: z.ZodString;
25
+ admin: z.ZodString;
26
+ relayer: z.ZodString;
27
+ };
28
+ export declare const list_agentsInputSchema: {
29
+ contractId: z.ZodOptional<z.ZodString>;
30
+ sourceAccount: z.ZodString;
31
+ from: z.ZodNumber;
32
+ limit: z.ZodNumber;
33
+ };
34
+ export declare const accept_adminInputSchema: {
35
+ contractId: z.ZodOptional<z.ZodString>;
36
+ sourceAccount: z.ZodString;
37
+ new_admin: z.ZodString;
38
+ };
39
+ export declare const get_relayersInputSchema: {
40
+ contractId: z.ZodOptional<z.ZodString>;
41
+ sourceAccount: z.ZodString;
42
+ };
43
+ export declare const submit_ratingInputSchema: {
44
+ contractId: z.ZodOptional<z.ZodString>;
45
+ sourceAccount: z.ZodString;
46
+ rating: z.ZodUnknown;
47
+ };
48
+ export declare const register_agentInputSchema: {
49
+ contractId: z.ZodOptional<z.ZodString>;
50
+ sourceAccount: z.ZodString;
51
+ owner_address: z.ZodString;
52
+ input: z.ZodUnknown;
53
+ };
54
+ export declare const remove_relayerInputSchema: {
55
+ contractId: z.ZodOptional<z.ZodString>;
56
+ sourceAccount: z.ZodString;
57
+ admin: z.ZodString;
58
+ relayer: z.ZodString;
59
+ };
60
+ export declare const transfer_adminInputSchema: {
61
+ contractId: z.ZodOptional<z.ZodString>;
62
+ sourceAccount: z.ZodString;
63
+ admin: z.ZodString;
64
+ new_admin: z.ZodString;
65
+ };
66
+ export declare const update_profileInputSchema: {
67
+ contractId: z.ZodOptional<z.ZodString>;
68
+ sourceAccount: z.ZodString;
69
+ owner_address: z.ZodString;
70
+ input: z.ZodUnknown;
71
+ };
72
+ export declare const deregister_agentInputSchema: {
73
+ contractId: z.ZodOptional<z.ZodString>;
74
+ sourceAccount: z.ZodString;
75
+ owner_address: z.ZodString;
76
+ };
77
+ export declare const register_interactionInputSchema: {
78
+ contractId: z.ZodOptional<z.ZodString>;
79
+ sourceAccount: z.ZodString;
80
+ relayer: z.ZodString;
81
+ interaction: z.ZodUnknown;
82
+ };
83
+ export declare const cancel_admin_transferInputSchema: {
84
+ contractId: z.ZodOptional<z.ZodString>;
85
+ sourceAccount: z.ZodString;
86
+ admin: z.ZodString;
87
+ };
88
+ export declare const list_agent_interactionsInputSchema: {
89
+ contractId: z.ZodOptional<z.ZodString>;
90
+ sourceAccount: z.ZodString;
91
+ provider_address: z.ZodString;
92
+ from_seq: z.ZodNumber;
93
+ limit: z.ZodNumber;
94
+ };