@vucinatim/agentic-devtools 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.
- package/LICENSE +21 -0
- package/README.md +202 -0
- package/SECURITY.md +47 -0
- package/adapters/claude/namecheap/README.md +13 -0
- package/adapters/claude/npm/README.md +11 -0
- package/adapters/claude/railway/README.md +11 -0
- package/adapters/codex/namecheap/.codex-plugin/plugin.json +40 -0
- package/adapters/codex/namecheap/.mcp.json +21 -0
- package/adapters/codex/namecheap/SKILL.md +40 -0
- package/adapters/codex/npm/.codex-plugin/plugin.json +41 -0
- package/adapters/codex/npm/.mcp.json +18 -0
- package/adapters/codex/npm/SKILL.md +54 -0
- package/adapters/codex/railway/.codex-plugin/plugin.json +39 -0
- package/adapters/codex/railway/.mcp.json +20 -0
- package/adapters/codex/railway/SKILL.md +44 -0
- package/docs/README.md +14 -0
- package/docs/architecture.md +208 -0
- package/docs/auth-and-setup-guidelines.md +261 -0
- package/docs/migration-plan.md +55 -0
- package/docs/open-source-readiness.md +119 -0
- package/docs/publishing.md +211 -0
- package/docs/testing.md +61 -0
- package/docs/usage.md +144 -0
- package/package.json +78 -0
- package/src/cli.mjs +158 -0
- package/src/core/config-store.mjs +106 -0
- package/src/core/result.mjs +13 -0
- package/src/core/tool-registry.mjs +29 -0
- package/src/index.mjs +47 -0
- package/src/tools/namecheap/auth.mjs +429 -0
- package/src/tools/namecheap/client.mjs +655 -0
- package/src/tools/namecheap/mcp.mjs +298 -0
- package/src/tools/npm/auth.mjs +367 -0
- package/src/tools/npm/client.mjs +317 -0
- package/src/tools/npm/mcp.mjs +343 -0
- package/src/tools/railway/auth.mjs +402 -0
- package/src/tools/railway/client.mjs +388 -0
- package/src/tools/railway/mcp.mjs +282 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Tim Vucina
|
|
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,202 @@
|
|
|
1
|
+
# Agentic Devtools
|
|
2
|
+
|
|
3
|
+
Reusable developer tools for AI agents.
|
|
4
|
+
|
|
5
|
+
Agentic Devtools is an MCP-first open-source package for developer platforms
|
|
6
|
+
such as Railway, Namecheap, and npm. It is meant to be run directly by MCP hosts with
|
|
7
|
+
`npx`, while still exposing package imports for custom automation.
|
|
8
|
+
|
|
9
|
+
Most users should not install this into their app. Point your agent host at the
|
|
10
|
+
tool you need:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npx -y @vucinatim/agentic-devtools mcp railway
|
|
14
|
+
npx -y @vucinatim/agentic-devtools mcp namecheap
|
|
15
|
+
npx -y @vucinatim/agentic-devtools mcp npm
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Run the guided setup once if you do not want to put tokens in MCP host config:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npx -y @vucinatim/agentic-devtools connect railway
|
|
22
|
+
npx -y @vucinatim/agentic-devtools connect namecheap
|
|
23
|
+
npx -y @vucinatim/agentic-devtools connect npm
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Start here:
|
|
27
|
+
|
|
28
|
+
- [docs/architecture.md](docs/architecture.md)
|
|
29
|
+
- [docs/usage.md](docs/usage.md)
|
|
30
|
+
- [docs/auth-and-setup-guidelines.md](docs/auth-and-setup-guidelines.md)
|
|
31
|
+
- [docs/open-source-readiness.md](docs/open-source-readiness.md)
|
|
32
|
+
- [docs/publishing.md](docs/publishing.md)
|
|
33
|
+
- [docs/migration-plan.md](docs/migration-plan.md)
|
|
34
|
+
- [docs/testing.md](docs/testing.md)
|
|
35
|
+
|
|
36
|
+
Project docs:
|
|
37
|
+
|
|
38
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
39
|
+
- [SECURITY.md](SECURITY.md)
|
|
40
|
+
- [LICENSE](LICENSE)
|
|
41
|
+
|
|
42
|
+
## Repository Shape
|
|
43
|
+
|
|
44
|
+
- `src/core/`
|
|
45
|
+
Shared CLI, registry, and result helpers.
|
|
46
|
+
- `src/tools/<tool-name>/`
|
|
47
|
+
Service clients and MCP server entrypoints.
|
|
48
|
+
- `adapters/codex/<tool-name>/`
|
|
49
|
+
Codex-specific plugin packaging and marketplace-facing metadata.
|
|
50
|
+
- `adapters/claude/<tool-name>/`
|
|
51
|
+
Claude-facing adapter notes or future wrapper code.
|
|
52
|
+
- `tests/tools/<tool-name>/`
|
|
53
|
+
Integration and protocol tests for each tool.
|
|
54
|
+
- `.agents/plugins/marketplace.json`
|
|
55
|
+
Local Codex marketplace catalog for the Codex adapters in this repo.
|
|
56
|
+
|
|
57
|
+
The package publishes as `@vucinatim/agentic-devtools` and exposes one CLI:
|
|
58
|
+
`agentic-devtools`.
|
|
59
|
+
|
|
60
|
+
## Usage
|
|
61
|
+
|
|
62
|
+
### MCP Host Via `npx`
|
|
63
|
+
|
|
64
|
+
This is the primary usage path.
|
|
65
|
+
|
|
66
|
+
Railway:
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"mcpServers": {
|
|
71
|
+
"railway": {
|
|
72
|
+
"command": "npx",
|
|
73
|
+
"args": ["-y", "@vucinatim/agentic-devtools", "mcp", "railway"],
|
|
74
|
+
"env": {
|
|
75
|
+
"RAILWAY_API_TOKEN": "..."
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
After `connect railway`, the same server config can omit `env` because the token
|
|
83
|
+
is resolved from `~/.config/agentic-devtools/railway.json`.
|
|
84
|
+
|
|
85
|
+
Namecheap:
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"mcpServers": {
|
|
90
|
+
"namecheap": {
|
|
91
|
+
"command": "npx",
|
|
92
|
+
"args": ["-y", "@vucinatim/agentic-devtools", "mcp", "namecheap"],
|
|
93
|
+
"env": {
|
|
94
|
+
"NAMECHEAP_API_USER": "...",
|
|
95
|
+
"NAMECHEAP_API_KEY": "...",
|
|
96
|
+
"NAMECHEAP_USERNAME": "...",
|
|
97
|
+
"NAMECHEAP_CLIENT_IP": "..."
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
After `connect namecheap`, the same server config can omit `env` because
|
|
105
|
+
credentials are resolved from `~/.config/agentic-devtools/namecheap.json`.
|
|
106
|
+
|
|
107
|
+
npm:
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"mcpServers": {
|
|
112
|
+
"npm": {
|
|
113
|
+
"command": "npx",
|
|
114
|
+
"args": ["-y", "@vucinatim/agentic-devtools", "mcp", "npm"]
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Use `connect npm` for guided token setup. For real package releases, prefer
|
|
121
|
+
GitHub Actions Trusted Publishing over local write tokens.
|
|
122
|
+
|
|
123
|
+
### Global CLI
|
|
124
|
+
|
|
125
|
+
Useful if you use the tools often from a terminal:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
npm install -g @vucinatim/agentic-devtools
|
|
129
|
+
agentic-devtools tools
|
|
130
|
+
agentic-devtools connect railway
|
|
131
|
+
agentic-devtools auth-status railway
|
|
132
|
+
agentic-devtools mcp railway
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Project Dependency
|
|
136
|
+
|
|
137
|
+
Use this only when building your own automation on top of the service clients:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
npm install @vucinatim/agentic-devtools
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
```js
|
|
144
|
+
import { createRailwayClient } from "@vucinatim/agentic-devtools";
|
|
145
|
+
import { createNamecheapClient } from "@vucinatim/agentic-devtools";
|
|
146
|
+
import { createNpmClient } from "@vucinatim/agentic-devtools";
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Design rule
|
|
150
|
+
|
|
151
|
+
Keep the integration logic host-agnostic:
|
|
152
|
+
|
|
153
|
+
1. build the service client and shared behavior in `src/`
|
|
154
|
+
2. expose MCP from the same shared layer
|
|
155
|
+
3. keep Codex and Claude wrappers thin and replaceable
|
|
156
|
+
|
|
157
|
+
## Current plugins
|
|
158
|
+
|
|
159
|
+
- `namecheap`
|
|
160
|
+
- `railway`
|
|
161
|
+
- `npm`
|
|
162
|
+
|
|
163
|
+
## Development
|
|
164
|
+
|
|
165
|
+
Current validation commands:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
npm run build
|
|
169
|
+
npm test
|
|
170
|
+
npm run test:namecheap
|
|
171
|
+
npm run test:railway
|
|
172
|
+
npm run coverage
|
|
173
|
+
npm run check
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Local Adapter Development
|
|
177
|
+
|
|
178
|
+
Local Codex adapter entries point to:
|
|
179
|
+
|
|
180
|
+
- `./adapters/codex/namecheap`
|
|
181
|
+
- `./adapters/codex/railway`
|
|
182
|
+
|
|
183
|
+
The shared MCP server implementations live at:
|
|
184
|
+
|
|
185
|
+
- `src/tools/namecheap/mcp.mjs`
|
|
186
|
+
- `src/tools/railway/mcp.mjs`
|
|
187
|
+
|
|
188
|
+
Local CLI examples:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
node src/cli.mjs tools
|
|
192
|
+
node src/cli.mjs mcp railway
|
|
193
|
+
node src/cli.mjs auth-status namecheap
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Publishing direction
|
|
197
|
+
|
|
198
|
+
Publishing should use GitHub Actions and npm Trusted Publishing via OIDC. This
|
|
199
|
+
avoids long-lived npm tokens and gives the public package provenance
|
|
200
|
+
attestations.
|
|
201
|
+
|
|
202
|
+
See [docs/publishing.md](docs/publishing.md).
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
Agentic Devtools connects agents to developer accounts and infrastructure. Treat
|
|
4
|
+
credentials, destructive actions, and package publishing as high-risk surfaces.
|
|
5
|
+
|
|
6
|
+
## Supported Versions
|
|
7
|
+
|
|
8
|
+
This project has not published a stable version yet. Security fixes should
|
|
9
|
+
target the main branch until the first public release.
|
|
10
|
+
|
|
11
|
+
## Reporting A Vulnerability
|
|
12
|
+
|
|
13
|
+
Do not open a public issue for credential exposure, auth bypasses, or unsafe
|
|
14
|
+
write behavior.
|
|
15
|
+
|
|
16
|
+
Report security issues privately to:
|
|
17
|
+
|
|
18
|
+
```txt
|
|
19
|
+
tim@vucina.com
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Include:
|
|
23
|
+
|
|
24
|
+
- affected tool
|
|
25
|
+
- reproduction steps
|
|
26
|
+
- expected impact
|
|
27
|
+
- whether credentials or account data may be exposed
|
|
28
|
+
|
|
29
|
+
## Credential Handling
|
|
30
|
+
|
|
31
|
+
Never commit:
|
|
32
|
+
|
|
33
|
+
- `.env`
|
|
34
|
+
- `.env.*`
|
|
35
|
+
- local Namecheap auth config files
|
|
36
|
+
- Railway tokens
|
|
37
|
+
- Namecheap API credentials
|
|
38
|
+
- npm tokens
|
|
39
|
+
|
|
40
|
+
Use environment variables or local ignored auth files for development.
|
|
41
|
+
|
|
42
|
+
## Write Tool Policy
|
|
43
|
+
|
|
44
|
+
Read-only tools are preferred by default.
|
|
45
|
+
|
|
46
|
+
Write tools must be narrow, explicit, and tested. Destructive operations should
|
|
47
|
+
make that behavior clear in the tool name, description, or input contract.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Claude Adapter
|
|
2
|
+
|
|
3
|
+
This adapter does not currently need a Claude-specific wrapper.
|
|
4
|
+
|
|
5
|
+
Use the published package directly:
|
|
6
|
+
|
|
7
|
+
- `npx -y @vucinatim/agentic-devtools mcp namecheap`
|
|
8
|
+
|
|
9
|
+
If Claude or another host needs packaging later, keep it thin:
|
|
10
|
+
|
|
11
|
+
1. point the host to the shared MCP entrypoint
|
|
12
|
+
2. avoid duplicating Namecheap client logic
|
|
13
|
+
3. keep any host metadata inside this folder only
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Claude Adapter
|
|
2
|
+
|
|
3
|
+
Claude-facing adapters should wrap the published npm MCP runtime:
|
|
4
|
+
|
|
5
|
+
- `npx -y @vucinatim/agentic-devtools mcp npm`
|
|
6
|
+
|
|
7
|
+
Keep this adapter thin:
|
|
8
|
+
|
|
9
|
+
1. reuse the shared npm client
|
|
10
|
+
2. avoid duplicating registry API logic
|
|
11
|
+
3. keep host-specific setup outside `src/`
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Claude Adapter
|
|
2
|
+
|
|
3
|
+
Claude-facing adapters should wrap the published Railway MCP runtime:
|
|
4
|
+
|
|
5
|
+
- `npx -y @vucinatim/agentic-devtools mcp railway`
|
|
6
|
+
|
|
7
|
+
Keep this adapter thin:
|
|
8
|
+
|
|
9
|
+
1. reuse the shared Railway client
|
|
10
|
+
2. avoid duplicating GraphQL logic
|
|
11
|
+
3. keep host-specific setup outside `src/`
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "namecheap",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Run the Agentic Devtools Namecheap MCP server from Codex.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Tim Vucina",
|
|
7
|
+
"email": "tim@vucina.com",
|
|
8
|
+
"url": "https://github.com/vucinatim"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://www.namecheap.com/",
|
|
11
|
+
"repository": "https://github.com/vucinatim/agentic-devtools/tree/main/adapters/codex/namecheap",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"namecheap",
|
|
15
|
+
"domains",
|
|
16
|
+
"dns"
|
|
17
|
+
],
|
|
18
|
+
"skills": "./skills/",
|
|
19
|
+
"mcpServers": "./.mcp.json",
|
|
20
|
+
"interface": {
|
|
21
|
+
"displayName": "Namecheap",
|
|
22
|
+
"shortDescription": "Run Namecheap MCP tools from Agentic Devtools.",
|
|
23
|
+
"longDescription": "Connect Namecheap so Codex can inspect domains, read DNS state, and safely update host records through the published Agentic Devtools MCP runtime.",
|
|
24
|
+
"developerName": "Tim Vucina",
|
|
25
|
+
"category": "Developer Tools",
|
|
26
|
+
"capabilities": [
|
|
27
|
+
"Read",
|
|
28
|
+
"Write"
|
|
29
|
+
],
|
|
30
|
+
"websiteURL": "https://www.namecheap.com/",
|
|
31
|
+
"privacyPolicyURL": "https://www.namecheap.com/legal/general/privacy-policy/",
|
|
32
|
+
"termsOfServiceURL": "https://www.namecheap.com/legal/universal/registration-agreement/",
|
|
33
|
+
"defaultPrompt": [
|
|
34
|
+
"Show me the DNS records for my domain.",
|
|
35
|
+
"Create a CNAME record for this subdomain.",
|
|
36
|
+
"Audit my Namecheap DNS setup for common issues."
|
|
37
|
+
],
|
|
38
|
+
"brandColor": "#de3723"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"namecheap": {
|
|
4
|
+
"command": "npx",
|
|
5
|
+
"args": [
|
|
6
|
+
"-y",
|
|
7
|
+
"@vucinatim/agentic-devtools",
|
|
8
|
+
"mcp",
|
|
9
|
+
"namecheap"
|
|
10
|
+
],
|
|
11
|
+
"env": {
|
|
12
|
+
"NAMECHEAP_API_USER": "[TODO]",
|
|
13
|
+
"NAMECHEAP_API_KEY": "[TODO]",
|
|
14
|
+
"NAMECHEAP_USERNAME": "[TODO]",
|
|
15
|
+
"NAMECHEAP_CLIENT_IP": "[TODO]",
|
|
16
|
+
"NAMECHEAP_API_SANDBOX": "[TODO: optional 1 for sandbox]",
|
|
17
|
+
"NAMECHEAP_API_BASE_URL": "[TODO: optional explicit override]"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: namecheap
|
|
3
|
+
description: Use the Namecheap plugin to inspect domains, manage DNS records, and support domain configuration workflows through a small MCP surface.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Namecheap
|
|
7
|
+
|
|
8
|
+
Use this plugin when the user needs to work with Namecheap-managed domains or DNS.
|
|
9
|
+
|
|
10
|
+
## Intended scope
|
|
11
|
+
|
|
12
|
+
- Read domain details
|
|
13
|
+
- Read and update DNS records
|
|
14
|
+
- Support common setup flows such as verification, redirects, and subdomain configuration
|
|
15
|
+
|
|
16
|
+
## Current MCP tools
|
|
17
|
+
|
|
18
|
+
- `getAuthStatus`
|
|
19
|
+
- `connectNamecheap`
|
|
20
|
+
- `disconnectNamecheap`
|
|
21
|
+
- `listDomains`
|
|
22
|
+
- `getDomainDns`
|
|
23
|
+
- `replaceDomainDns`
|
|
24
|
+
- `addDomainDnsRecord`
|
|
25
|
+
- `removeDomainDnsRecord`
|
|
26
|
+
- `updateDomainDnsRecord`
|
|
27
|
+
|
|
28
|
+
## Architecture note
|
|
29
|
+
|
|
30
|
+
Keep the public plugin surface small:
|
|
31
|
+
|
|
32
|
+
- expose stable MCP tools for domain and DNS operations
|
|
33
|
+
- keep raw API handling inside the shared `src/` layer
|
|
34
|
+
- add higher-level skills only after the MCP contract is stable
|
|
35
|
+
|
|
36
|
+
## Auth model
|
|
37
|
+
|
|
38
|
+
Namecheap uses API credentials plus IP whitelisting, not a normal OAuth token exchange.
|
|
39
|
+
|
|
40
|
+
Use `connectNamecheap` to open a browser-based setup flow and store local plugin credentials, or provide credentials via environment variables if you need a stateless setup.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "npm",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Run the Agentic Devtools npm MCP server from Codex.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Tim Vucina",
|
|
7
|
+
"email": "tim@vucina.com",
|
|
8
|
+
"url": "https://github.com/vucinatim"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://www.npmjs.com/",
|
|
11
|
+
"repository": "https://github.com/vucinatim/agentic-devtools/tree/main/adapters/codex/npm",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"npm",
|
|
15
|
+
"packages",
|
|
16
|
+
"publishing",
|
|
17
|
+
"registry"
|
|
18
|
+
],
|
|
19
|
+
"skills": "./skills/",
|
|
20
|
+
"mcpServers": "./.mcp.json",
|
|
21
|
+
"interface": {
|
|
22
|
+
"displayName": "npm",
|
|
23
|
+
"shortDescription": "Run npm registry MCP tools from Agentic Devtools.",
|
|
24
|
+
"longDescription": "Connect npm so Codex can inspect package metadata, check package names, review token status, inspect publishing setup, and run explicit publish dry-runs through the published Agentic Devtools MCP runtime.",
|
|
25
|
+
"developerName": "Tim Vucina",
|
|
26
|
+
"category": "Developer Tools",
|
|
27
|
+
"capabilities": [
|
|
28
|
+
"Read",
|
|
29
|
+
"Write"
|
|
30
|
+
],
|
|
31
|
+
"websiteURL": "https://www.npmjs.com/",
|
|
32
|
+
"privacyPolicyURL": "https://docs.npmjs.com/policies/privacy",
|
|
33
|
+
"termsOfServiceURL": "https://docs.npmjs.com/policies/terms",
|
|
34
|
+
"defaultPrompt": [
|
|
35
|
+
"Check whether this npm package name is available.",
|
|
36
|
+
"Show me the published versions and dist-tags for this package.",
|
|
37
|
+
"Run an npm publish dry-run for this package directory."
|
|
38
|
+
],
|
|
39
|
+
"brandColor": "#cb3837"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"npm": {
|
|
4
|
+
"command": "npx",
|
|
5
|
+
"args": [
|
|
6
|
+
"-y",
|
|
7
|
+
"@vucinatim/agentic-devtools",
|
|
8
|
+
"mcp",
|
|
9
|
+
"npm"
|
|
10
|
+
],
|
|
11
|
+
"env": {
|
|
12
|
+
"NPM_TOKEN": "[TODO: optional npm granular token]",
|
|
13
|
+
"NODE_AUTH_TOKEN": "[TODO: optional npm token fallback]",
|
|
14
|
+
"NPM_CONFIG_REGISTRY": "[TODO: optional registry override]"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: npm
|
|
3
|
+
description: Use the npm plugin to inspect npm registry packages, package names, auth status, tokens, and publishing setup through Agentic Devtools.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# npm
|
|
7
|
+
|
|
8
|
+
Use this plugin when the user needs to inspect npm packages, check whether a
|
|
9
|
+
package name is available, validate npm auth, inspect token state, or run a
|
|
10
|
+
publish dry-run.
|
|
11
|
+
|
|
12
|
+
## Intended Scope
|
|
13
|
+
|
|
14
|
+
- Read public package metadata
|
|
15
|
+
- Check package name availability
|
|
16
|
+
- List package versions and dist-tags
|
|
17
|
+
- Check npm auth status without exposing tokens
|
|
18
|
+
- Inspect token lists when an authenticated npm token is configured
|
|
19
|
+
- Run local `npm publish --dry-run`
|
|
20
|
+
- Run real local publishing only when explicitly confirmed
|
|
21
|
+
|
|
22
|
+
## Current MCP Tools
|
|
23
|
+
|
|
24
|
+
- `getNpmAuthStatus`
|
|
25
|
+
- `connectNpm`
|
|
26
|
+
- `disconnectNpm`
|
|
27
|
+
- `testNpmConnection`
|
|
28
|
+
- `getNpmPackageInfo`
|
|
29
|
+
- `checkNpmPackageNameAvailability`
|
|
30
|
+
- `getNpmPackageVersions`
|
|
31
|
+
- `getNpmPackageDistTags`
|
|
32
|
+
- `getNpmPackageVisibility`
|
|
33
|
+
- `setNpmPackageAccess`
|
|
34
|
+
- `listNpmTokens`
|
|
35
|
+
- `exchangeNpmOidcToken`
|
|
36
|
+
- `getNpmTrustedPublishers`
|
|
37
|
+
- `addNpmGitHubTrustedPublisher`
|
|
38
|
+
- `deleteNpmTrustedPublisher`
|
|
39
|
+
- `publishNpmPackageDirectory`
|
|
40
|
+
|
|
41
|
+
## Auth Model
|
|
42
|
+
|
|
43
|
+
npm does not provide a normal third-party OAuth flow for local tools.
|
|
44
|
+
|
|
45
|
+
Supported auth sources:
|
|
46
|
+
|
|
47
|
+
- `NPM_TOKEN`
|
|
48
|
+
- `NODE_AUTH_TOKEN`
|
|
49
|
+
- explicit npm user config via `.npmrc`
|
|
50
|
+
- local Agentic Devtools storage from `connectNpm`
|
|
51
|
+
|
|
52
|
+
Prefer GitHub Actions Trusted Publishing for real package releases. Local
|
|
53
|
+
publishing is available for controlled cases, but it requires an explicit
|
|
54
|
+
confirmation string.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "railway",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Run the Agentic Devtools Railway MCP server from Codex.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Tim Vucina",
|
|
7
|
+
"email": "tim@vucina.com",
|
|
8
|
+
"url": "https://github.com/vucinatim"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://railway.com/",
|
|
11
|
+
"repository": "https://github.com/vucinatim/agentic-devtools/tree/main/adapters/codex/railway",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"railway",
|
|
15
|
+
"deployments",
|
|
16
|
+
"infrastructure"
|
|
17
|
+
],
|
|
18
|
+
"skills": "./skills/",
|
|
19
|
+
"mcpServers": "./.mcp.json",
|
|
20
|
+
"interface": {
|
|
21
|
+
"displayName": "Railway",
|
|
22
|
+
"shortDescription": "Run Railway MCP tools from Agentic Devtools.",
|
|
23
|
+
"longDescription": "Connect Railway so Codex can inspect account identity, projects, environments, service instances, domains, and deployment status through the published Agentic Devtools MCP runtime.",
|
|
24
|
+
"developerName": "Tim Vucina",
|
|
25
|
+
"category": "Developer Tools",
|
|
26
|
+
"capabilities": [
|
|
27
|
+
"Read"
|
|
28
|
+
],
|
|
29
|
+
"websiteURL": "https://railway.com/",
|
|
30
|
+
"privacyPolicyURL": "https://railway.com/legal/privacy",
|
|
31
|
+
"termsOfServiceURL": "https://railway.com/legal/terms",
|
|
32
|
+
"defaultPrompt": [
|
|
33
|
+
"Show me my Railway projects.",
|
|
34
|
+
"Inspect this Railway project's production environment.",
|
|
35
|
+
"Check the deployment status for this Railway project."
|
|
36
|
+
],
|
|
37
|
+
"brandColor": "#0b0d0e"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"railway": {
|
|
4
|
+
"command": "npx",
|
|
5
|
+
"args": [
|
|
6
|
+
"-y",
|
|
7
|
+
"@vucinatim/agentic-devtools",
|
|
8
|
+
"mcp",
|
|
9
|
+
"railway"
|
|
10
|
+
],
|
|
11
|
+
"env": {
|
|
12
|
+
"RAILWAY_PROJECT_TOKEN": "[TODO: optional project-scoped token]",
|
|
13
|
+
"RAILWAY_API_TOKEN": "[TODO: optional account-scoped token]",
|
|
14
|
+
"RAILWAY_TOKEN": "[TODO: optional account-scoped token fallback]",
|
|
15
|
+
"RAILWAY_PROJECT_ID": "[TODO: optional default project id]",
|
|
16
|
+
"RAILWAY_API_ENDPOINT": "[TODO: optional explicit GraphQL endpoint override]"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: railway
|
|
3
|
+
description: Use the Railway plugin to inspect Railway account, project, environment, service, domain, and deployment state through a small read-only MCP surface.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Railway
|
|
7
|
+
|
|
8
|
+
Use this plugin when the user needs to inspect Railway projects, environments,
|
|
9
|
+
services, domains, or deployment status.
|
|
10
|
+
|
|
11
|
+
## Intended Scope
|
|
12
|
+
|
|
13
|
+
- Read account identity
|
|
14
|
+
- List Railway projects
|
|
15
|
+
- Inspect a project and its environments
|
|
16
|
+
- Inspect environment service instances and deployment status
|
|
17
|
+
- Run a compact project doctor summary
|
|
18
|
+
|
|
19
|
+
## Current MCP Tools
|
|
20
|
+
|
|
21
|
+
- `getRailwayAuthStatus`
|
|
22
|
+
- `testRailwayConnection`
|
|
23
|
+
- `getRailwayViewer`
|
|
24
|
+
- `listRailwayProjects`
|
|
25
|
+
- `inspectRailwayProjectToken`
|
|
26
|
+
- `getRailwayProject`
|
|
27
|
+
- `listRailwayEnvironments`
|
|
28
|
+
- `getRailwayEnvironment`
|
|
29
|
+
- `doctorRailwayProject`
|
|
30
|
+
|
|
31
|
+
## Architecture Note
|
|
32
|
+
|
|
33
|
+
Keep the public plugin surface read-only until write workflows have explicit
|
|
34
|
+
confirmation and rollback rules.
|
|
35
|
+
|
|
36
|
+
## Auth Model
|
|
37
|
+
|
|
38
|
+
Railway supports different token scopes.
|
|
39
|
+
|
|
40
|
+
- `RAILWAY_PROJECT_TOKEN` is project-scoped and works for project inspection.
|
|
41
|
+
- `RAILWAY_API_TOKEN` or `RAILWAY_TOKEN` is account-scoped and works for account
|
|
42
|
+
identity and project listing.
|
|
43
|
+
|
|
44
|
+
Prefer project tokens for narrow inspection when a specific project is known.
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Docs
|
|
2
|
+
|
|
3
|
+
Start with:
|
|
4
|
+
|
|
5
|
+
- [Architecture](architecture.md)
|
|
6
|
+
- [Usage](usage.md)
|
|
7
|
+
- [Auth And Setup Guidelines](auth-and-setup-guidelines.md)
|
|
8
|
+
- [Open Source Readiness](open-source-readiness.md)
|
|
9
|
+
- [Publishing](publishing.md)
|
|
10
|
+
- [Migration Plan](migration-plan.md)
|
|
11
|
+
- [Testing](testing.md)
|
|
12
|
+
|
|
13
|
+
These docs describe the public package direction and the current repository
|
|
14
|
+
setup.
|