specrun 1.0.0 → 1.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.
package/README.md CHANGED
@@ -21,6 +21,7 @@ Built with [FastMCP](https://www.npmjs.com/package/fastmcp) for TypeScript.
21
21
  - **Multiple Transports**: Support for stdio and HTTP streaming
22
22
  - **Built-in Debugging**: List command to see loaded specs and tools
23
23
  - **MCP Prompts**: Built-in prompts for listing tools, generating inputs, and explaining schemas
24
+ - **Agent**: configured agent for using SpecRun tools to explore and operate APIs in a guided way ([`.github/agents/specrun.agent.md`](.github/agents/specrun.agent.md))
24
25
 
25
26
  ## Quick Start
26
27
 
@@ -91,6 +92,31 @@ Otherwise:
91
92
  }
92
93
  ```
93
94
 
95
+ or with specific Node version:
96
+
97
+ ```json
98
+ {
99
+ "mcpServers": {
100
+ "specrun": {
101
+ "command": "/Users/YOUR_USER_NAME/.local/bin/mcp-npx-node22",
102
+ "args": ["specrun@latest", "--specs", "/absolute/path/to/your/specs"],
103
+ "type": "stdio"
104
+ }
105
+ }
106
+ }
107
+ ```
108
+
109
+ The `mcp-npx-node22` script file uses nvm to run specrun with Node.js 22.14.0, ensuring compatibility regardless of the default Node version on your system.:
110
+
111
+ ```bash
112
+ #!/bin/bash
113
+ # Set the PATH to include NVM's Node.js v22.14.0 installation
114
+ export PATH="/Users/Pavlo_Piga/.nvm/versions/node/v22.14.0/bin:$PATH"
115
+
116
+ # Execute npx with all passed arguments
117
+ exec npx "$@"
118
+ ```
119
+
94
120
  ## 💻 CLI Usage
95
121
 
96
122
  ### 🚀 Start the server
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specrun",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "An MCP server that converts OpenAPI specifications to MCP tools - scan a folder for spec files and automatically generate corresponding tools",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -23,8 +23,9 @@
23
23
  "tools",
24
24
  "spec",
25
25
  "fastmcp",
26
- "runner",
27
- "generator"
26
+ "run",
27
+ "execute",
28
+ "generate"
28
29
  ],
29
30
  "author": "Pavel Piha",
30
31
  "types": "dist/index.d.ts",
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "servers": [
9
9
  {
10
- "url": "https://api-server.placeholder"
10
+ "url": "https://api.example.com"
11
11
  }
12
12
  ],
13
13
  "paths": {
@@ -52,7 +52,11 @@
52
52
  "application/json": {
53
53
  "schema": {
54
54
  "type": "object",
55
- "required": ["make", "model", "year"],
55
+ "required": [
56
+ "make",
57
+ "model",
58
+ "year"
59
+ ],
56
60
  "properties": {
57
61
  "make": {
58
62
  "type": "string",
@@ -70,7 +74,11 @@
70
74
  "status": {
71
75
  "type": "string",
72
76
  "description": "car status in the catalog",
73
- "enum": ["available", "reserved", "sold"]
77
+ "enum": [
78
+ "available",
79
+ "reserved",
80
+ "sold"
81
+ ]
74
82
  }
75
83
  }
76
84
  }
@@ -101,5 +109,5 @@
101
109
  }
102
110
  }
103
111
  },
104
- "x-base-url": "https://api-server.placeholder"
112
+ "x-base-url": "https://api.example.com"
105
113
  }
package/specs/github.yaml CHANGED
@@ -4,7 +4,7 @@ info:
4
4
  version: 1.0.0
5
5
  description: A subset of the GitHub REST API for demonstration
6
6
  servers:
7
- - url: https://api.github.com
7
+ - url: https://api.example.com
8
8
  paths:
9
9
  /user:
10
10
  get:
@@ -18,25 +18,32 @@ paths:
18
18
  description: Requires authentication
19
19
  security:
20
20
  - bearerAuth: []
21
-
22
21
  /user/repos:
23
22
  get:
24
23
  operationId: listUserRepos
25
24
  summary: List repositories for the authenticated user
26
- description: Lists repositories that the authenticated user has explicit permission to access
25
+ description: Lists repositories that the authenticated user has explicit
26
+ permission to access
27
27
  parameters:
28
28
  - name: type
29
29
  in: query
30
30
  schema:
31
31
  type: string
32
- enum: [all, owner, member]
32
+ enum:
33
+ - all
34
+ - owner
35
+ - member
33
36
  default: all
34
37
  description: Type of repositories to list
35
38
  - name: sort
36
39
  in: query
37
40
  schema:
38
41
  type: string
39
- enum: [created, updated, pushed, full_name]
42
+ enum:
43
+ - created
44
+ - updated
45
+ - pushed
46
+ - full_name
40
47
  default: full_name
41
48
  description: Sort order
42
49
  - name: per_page
@@ -54,7 +61,6 @@ paths:
54
61
  description: Requires authentication
55
62
  security:
56
63
  - bearerAuth: []
57
-
58
64
  /repos/{owner}/{repo}:
59
65
  get:
60
66
  operationId: getRepository
@@ -78,7 +84,6 @@ paths:
78
84
  description: Repository information
79
85
  "404":
80
86
  description: Repository not found
81
-
82
87
  /repos/{owner}/{repo}/issues:
83
88
  get:
84
89
  operationId: listRepoIssues
@@ -101,7 +106,10 @@ paths:
101
106
  in: query
102
107
  schema:
103
108
  type: string
104
- enum: [open, closed, all]
109
+ enum:
110
+ - open
111
+ - closed
112
+ - all
105
113
  default: open
106
114
  description: Issue state
107
115
  - name: labels
@@ -112,7 +120,6 @@ paths:
112
120
  responses:
113
121
  "200":
114
122
  description: List of issues
115
-
116
123
  post:
117
124
  operationId: createIssue
118
125
  summary: Create an issue
@@ -136,7 +143,8 @@ paths:
136
143
  application/json:
137
144
  schema:
138
145
  type: object
139
- required: [title]
146
+ required:
147
+ - title
140
148
  properties:
141
149
  title:
142
150
  type: string
@@ -156,9 +164,9 @@ paths:
156
164
  description: Validation failed
157
165
  security:
158
166
  - bearerAuth: []
159
-
160
167
  components:
161
168
  securitySchemes:
162
169
  bearerAuth:
163
170
  type: http
164
171
  scheme: bearer
172
+ x-base-url: https://api.example.com