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 +26 -0
- package/package.json +4 -3
- package/specs/cars.swagger.json +12 -4
- package/specs/github.yaml +19 -11
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.
|
|
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
|
-
"
|
|
27
|
-
"
|
|
26
|
+
"run",
|
|
27
|
+
"execute",
|
|
28
|
+
"generate"
|
|
28
29
|
],
|
|
29
30
|
"author": "Pavel Piha",
|
|
30
31
|
"types": "dist/index.d.ts",
|
package/specs/cars.swagger.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"servers": [
|
|
9
9
|
{
|
|
10
|
-
"url": "https://api
|
|
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": [
|
|
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": [
|
|
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
|
|
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.
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|