@msegoviadev/api-mind-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 (40) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +245 -0
  3. package/dist/core/index.d.ts +4 -0
  4. package/dist/core/index.d.ts.map +1 -0
  5. package/dist/core/index.js +20 -0
  6. package/dist/core/index.js.map +1 -0
  7. package/dist/core/loader.d.ts +23 -0
  8. package/dist/core/loader.d.ts.map +1 -0
  9. package/dist/core/loader.js +208 -0
  10. package/dist/core/loader.js.map +1 -0
  11. package/dist/core/parser.d.ts +17 -0
  12. package/dist/core/parser.d.ts.map +1 -0
  13. package/dist/core/parser.js +215 -0
  14. package/dist/core/parser.js.map +1 -0
  15. package/dist/core/types.d.ts +55 -0
  16. package/dist/core/types.d.ts.map +1 -0
  17. package/dist/core/types.js +3 -0
  18. package/dist/core/types.js.map +1 -0
  19. package/dist/index.d.ts +17 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +172 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/lib/node-bindings.d.ts +2 -0
  24. package/dist/lib/node-bindings.d.ts.map +1 -0
  25. package/dist/lib/node-bindings.js +17 -0
  26. package/dist/lib/node-bindings.js.map +1 -0
  27. package/dist/tools/get-endpoint-schema.d.ts +20 -0
  28. package/dist/tools/get-endpoint-schema.d.ts.map +1 -0
  29. package/dist/tools/get-endpoint-schema.js +90 -0
  30. package/dist/tools/get-endpoint-schema.js.map +1 -0
  31. package/dist/tools/list-apis.d.ts +9 -0
  32. package/dist/tools/list-apis.d.ts.map +1 -0
  33. package/dist/tools/list-apis.js +28 -0
  34. package/dist/tools/list-apis.js.map +1 -0
  35. package/dist/tools/list-endpoints.d.ts +11 -0
  36. package/dist/tools/list-endpoints.d.ts.map +1 -0
  37. package/dist/tools/list-endpoints.js +33 -0
  38. package/dist/tools/list-endpoints.js.map +1 -0
  39. package/package.json +54 -0
  40. package/setup-mcp.sh.example +41 -0
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.definition = void 0;
4
+ exports.handler = handler;
5
+ const loader_js_1 = require("../core/loader.js");
6
+ exports.definition = {
7
+ name: "list_apis",
8
+ description: `Lists all APIs loaded from the specs folder, with their names, titles, base URLs, and available environments.
9
+
10
+ Use this when you need to know what APIs are loaded or what environments a specific API supports.
11
+ Call this first when the user references an API you haven't seen yet.`,
12
+ inputSchema: {
13
+ type: "object",
14
+ properties: {},
15
+ },
16
+ };
17
+ async function handler(args) {
18
+ const result = await (0, loader_js_1.listApis)();
19
+ return {
20
+ content: [
21
+ {
22
+ type: "text",
23
+ text: JSON.stringify(result, null, 2),
24
+ },
25
+ ],
26
+ };
27
+ }
28
+ //# sourceMappingURL=list-apis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-apis.js","sourceRoot":"","sources":["../../src/tools/list-apis.ts"],"names":[],"mappings":";;;AAeA,0BAUC;AAzBD,iDAA6C;AAGhC,QAAA,UAAU,GAAS;IAC9B,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE;;;sEAGuD;IACpE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;KACf;CACF,CAAC;AAEK,KAAK,UAAU,OAAO,CAAC,IAA2B;IACvD,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAQ,GAAE,CAAC;IAChC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const definition: Tool;
3
+ export declare function handler(args: {
4
+ filter?: string;
5
+ }): Promise<{
6
+ content: {
7
+ type: string;
8
+ text: string;
9
+ }[];
10
+ }>;
11
+ //# sourceMappingURL=list-endpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-endpoints.d.ts","sourceRoot":"","sources":["../../src/tools/list-endpoints.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,eAAO,MAAM,UAAU,EAAE,IAexB,CAAC;AAEF,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAUtD"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.definition = void 0;
4
+ exports.handler = handler;
5
+ const loader_js_1 = require("../core/loader.js");
6
+ exports.definition = {
7
+ name: "list_endpoints",
8
+ description: `Lists all available endpoints across all loaded .mind files. Also surfaces the available environment names.
9
+
10
+ Use this to discover what endpoints exist across all APIs. Filter by method, path, or section.
11
+ Call this when the user references an API or asks what's available.`,
12
+ inputSchema: {
13
+ type: "object",
14
+ properties: {
15
+ filter: {
16
+ type: "string",
17
+ description: "Substring match on method, path, or section name",
18
+ },
19
+ },
20
+ },
21
+ };
22
+ async function handler(args) {
23
+ const result = await (0, loader_js_1.listEndpoints)(args.filter);
24
+ return {
25
+ content: [
26
+ {
27
+ type: "text",
28
+ text: JSON.stringify(result, null, 2),
29
+ },
30
+ ],
31
+ };
32
+ }
33
+ //# sourceMappingURL=list-endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-endpoints.js","sourceRoot":"","sources":["../../src/tools/list-endpoints.ts"],"names":[],"mappings":";;;AAoBA,0BAUC;AA9BD,iDAAkD;AAGrC,QAAA,UAAU,GAAS;IAC9B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE;;;oEAGqD;IAClE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kDAAkD;aAChE;SACF;KACF;CACF,CAAC;AAEK,KAAK,UAAU,OAAO,CAAC,IAAyB;IACrD,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACF;KACF,CAAC;AACJ,CAAC"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@msegoviadev/api-mind-mcp",
3
+ "version": "0.1.0",
4
+ "description": "MCP server for API discovery from .mind spec files",
5
+ "main": "./dist/index.js",
6
+ "bin": {
7
+ "api-mind-mcp": "./dist/index.js"
8
+ },
9
+ "scripts": {
10
+ "build": "tsc",
11
+ "prepare": "npm run build",
12
+ "test": "node --experimental-strip-types test/test.ts"
13
+ },
14
+ "dependencies": {
15
+ "@modelcontextprotocol/sdk": "^1.0.0"
16
+ },
17
+ "devDependencies": {
18
+ "@types/node": "^20.0.0",
19
+ "typescript": "^5.0.0"
20
+ },
21
+ "keywords": [
22
+ "mcp",
23
+ "api",
24
+ "discovery",
25
+ "openapi",
26
+ "model-context-protocol",
27
+ "claude-code",
28
+ "llm"
29
+ ],
30
+ "author": {
31
+ "name": "msegoviadev",
32
+ "email": "marcos@msegovia.dev"
33
+ },
34
+ "license": "MIT",
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/msegoviadev/api-mind-mcp"
38
+ },
39
+ "bugs": {
40
+ "url": "https://github.com/msegoviadev/api-mind-mcp/issues"
41
+ },
42
+ "homepage": "https://github.com/msegoviadev/api-mind-mcp#readme",
43
+ "files": [
44
+ "dist",
45
+ "README.md",
46
+ "setup-mcp.sh.example"
47
+ ],
48
+ "publishConfig": {
49
+ "access": "public"
50
+ },
51
+ "engines": {
52
+ "node": ">=18.0.0"
53
+ }
54
+ }
@@ -0,0 +1,41 @@
1
+ #!/bin/bash
2
+ # Example setup script for api-mind MCP server
3
+ # Run this once after cloning the repository
4
+
5
+ set -e
6
+
7
+ PROJECT_ROOT="$(cd "$(dirname "$0")" && pwd)"
8
+ SPECS_DIR="${PROJECT_ROOT}/specs"
9
+
10
+ echo "Setting up api-mind MCP server..."
11
+ echo "Project root: ${PROJECT_ROOT}"
12
+ echo "Specs directory: ${SPECS_DIR}"
13
+
14
+ # Check if specs directory exists
15
+ if [ ! -d "$SPECS_DIR" ]; then
16
+ echo "Creating specs directory..."
17
+ mkdir -p "$SPECS_DIR"
18
+ fi
19
+
20
+ # Check for .mind files
21
+ MIND_FILES=$(find "$SPECS_DIR" -name "*.mind" 2>/dev/null | wc -l | tr -d ' ')
22
+ if [ "$MIND_FILES" -eq 0 ]; then
23
+ echo ""
24
+ echo "⚠️ No .mind files found in $SPECS_DIR"
25
+ echo "Generate them with: spec-mind sync --no-notation ./specs/"
26
+ echo ""
27
+ fi
28
+
29
+ # Add MCP server to Claude Code
30
+ echo "Adding api-mind to Claude Code..."
31
+ claude mcp add --transport stdio --scope project api-mind \
32
+ --env SPECS_DIR="$SPECS_DIR" \
33
+ -- npx -y @msegoviadev/api-mind-mcp
34
+
35
+ echo ""
36
+ echo "✓ api-mind configured successfully!"
37
+ echo ""
38
+ echo "Next steps:"
39
+ echo "1. Add OpenAPI specs to: ${SPECS_DIR}/"
40
+ echo "2. Generate .mind files: spec-mind sync --no-notation ./specs/"
41
+ echo "3. Restart Claude Code"