@cann4n/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.
@@ -0,0 +1,2 @@
1
+ export { createMcpServer, startMcpServer } from "./mcpServer";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { createMcpServer, startMcpServer } from "./mcpServer";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
+ import type { AgentKitStellar } from "@cann4n/core";
3
+ export interface AgentKitMcpServerConfig {
4
+ agentKit: AgentKitStellar;
5
+ serverInfo?: {
6
+ name: string;
7
+ version: string;
8
+ };
9
+ }
10
+ /** Create an MCP Server instance with Stellar actions as tools. */
11
+ export declare function createMcpServer(config: AgentKitMcpServerConfig): Server;
12
+ /** Create and start an MCP server with stdio transport. Blocks until the transport disconnects. */
13
+ export declare function startMcpServer(config: AgentKitMcpServerConfig): Promise<void>;
14
+ //# sourceMappingURL=mcpServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpServer.d.ts","sourceRoot":"","sources":["../src/mcpServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAOnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAmDvE;AAED,mGAAmG;AACnG,wBAAsB,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAInF"}
@@ -0,0 +1,91 @@
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
+ import { ListToolsRequestSchema, CallToolRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
4
+ import { z } from "zod";
5
+ /** Create an MCP Server instance with Stellar actions as tools. */
6
+ export function createMcpServer(config) {
7
+ const { agentKit, serverInfo } = config;
8
+ const actions = agentKit.getActions();
9
+ const server = new Server({
10
+ name: serverInfo?.name || "agentkit-stellar",
11
+ version: serverInfo?.version || "0.1.0",
12
+ }, {
13
+ capabilities: {
14
+ tools: {},
15
+ },
16
+ });
17
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
18
+ tools: actions.map((action) => ({
19
+ name: action.name,
20
+ description: action.description,
21
+ inputSchema: zodToJsonSchema(action.schema),
22
+ })),
23
+ }));
24
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
25
+ const { name, arguments: args } = request.params;
26
+ const action = actions.find((a) => a.name === name);
27
+ if (!action) {
28
+ return {
29
+ content: [{ type: "text", text: `Unknown tool: ${name}` }],
30
+ isError: true,
31
+ };
32
+ }
33
+ try {
34
+ const parsed = action.schema.parse(args || {});
35
+ const result = await action.invoke(parsed);
36
+ return {
37
+ content: [{ type: "text", text: result }],
38
+ };
39
+ }
40
+ catch (error) {
41
+ return {
42
+ content: [{
43
+ type: "text",
44
+ text: `Error: ${error instanceof Error ? error.message : String(error)}`,
45
+ }],
46
+ isError: true,
47
+ };
48
+ }
49
+ });
50
+ return server;
51
+ }
52
+ /** Create and start an MCP server with stdio transport. Blocks until the transport disconnects. */
53
+ export async function startMcpServer(config) {
54
+ const server = createMcpServer(config);
55
+ const transport = new StdioServerTransport();
56
+ await server.connect(transport);
57
+ }
58
+ function zodToJsonSchema(schema) {
59
+ if (schema instanceof z.ZodObject) {
60
+ const properties = {};
61
+ const required = [];
62
+ for (const [key, value] of Object.entries(schema.shape)) {
63
+ properties[key] = { type: inferZodType(value), description: value.description || "" };
64
+ if (!(value instanceof z.ZodOptional) && !(value instanceof z.ZodDefault)) {
65
+ required.push(key);
66
+ }
67
+ }
68
+ return { type: "object", properties, required, additionalProperties: false };
69
+ }
70
+ return { type: "object" };
71
+ }
72
+ function inferZodType(zodType) {
73
+ if (zodType instanceof z.ZodString)
74
+ return "string";
75
+ if (zodType instanceof z.ZodNumber)
76
+ return "number";
77
+ if (zodType instanceof z.ZodBoolean)
78
+ return "boolean";
79
+ if (zodType instanceof z.ZodArray)
80
+ return "array";
81
+ if (zodType instanceof z.ZodEnum)
82
+ return "string";
83
+ if (zodType instanceof z.ZodRecord)
84
+ return "object";
85
+ if (zodType instanceof z.ZodOptional)
86
+ return inferZodType(zodType.unwrap());
87
+ if (zodType instanceof z.ZodDefault)
88
+ return inferZodType(zodType.removeDefault());
89
+ return "string";
90
+ }
91
+ //# sourceMappingURL=mcpServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpServer.js","sourceRoot":"","sources":["../src/mcpServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mcpServer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpServer.test.d.ts","sourceRoot":"","sources":["../src/mcpServer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { AgentKitStellar, MockWalletProvider } from "@cann4n/core";
3
+ import { createMcpServer } from "./mcpServer";
4
+ describe("MCP adapter", () => {
5
+ const wallet = new MockWalletProvider();
6
+ const agentKit = AgentKitStellar.create({ walletProvider: wallet });
7
+ it("should create an MCP server", () => {
8
+ const server = createMcpServer({ agentKit });
9
+ expect(server).toBeDefined();
10
+ });
11
+ });
12
+ //# sourceMappingURL=mcpServer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpServer.test.js","sourceRoot":"","sources":["../src/mcpServer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,MAAM,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;IAEpE,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@cann4n/mcp",
3
+ "version": "0.1.0",
4
+ "description": "MCP server adapter for AgentKit Stellar",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "dependencies": {
20
+ "@cann4n/core": "^0.1.0",
21
+ "@modelcontextprotocol/sdk": "^1.0.0"
22
+ },
23
+ "devDependencies": {
24
+ "typescript": "^5.7.0",
25
+ "vitest": "^3.0.0"
26
+ },
27
+ "publishConfig": {
28
+ "access": "public"
29
+ },
30
+ "license": "MIT",
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "https://github.com/anomalyco/agentkit-stellar.git",
34
+ "directory": "packages/adapter-mcp"
35
+ },
36
+ "scripts": {
37
+ "build": "tsc",
38
+ "test": "vitest run",
39
+ "lint": "eslint src/",
40
+ "typecheck": "tsc --noEmit",
41
+ "clean": "rm -rf dist"
42
+ }
43
+ }