@softacus-software/elwis-docs-mcp 0.1.1
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/CHANGELOG.md +32 -0
- package/LICENSE +6 -0
- package/README.md +112 -0
- package/data/openapi.json +66347 -0
- package/data/search-index.json +4228 -0
- package/dist/data-store.js +119 -0
- package/dist/data-store.js.map +1 -0
- package/dist/generate.js +49 -0
- package/dist/generate.js.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/search.js +54 -0
- package/dist/search.js.map +1 -0
- package/dist/server.js +72 -0
- package/dist/server.js.map +1 -0
- package/dist/spec-walk.js +21 -0
- package/dist/spec-walk.js.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +66 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented here. The format is based on
|
|
4
|
+
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project adheres
|
|
5
|
+
to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
|
+
|
|
7
|
+
## [0.1.1] - 2026-07-06
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- Simpler step-by-step README with client configuration examples.
|
|
11
|
+
- Packaged file list trimmed to runtime files.
|
|
12
|
+
|
|
13
|
+
## [0.1.0] - 2026-07-02
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
- Initial standalone release of the read-only ELWIS API documentation MCP server.
|
|
17
|
+
- Five STDIO tools: `search_elwis_api`, `list_elwis_api_groups`, `get_elwis_endpoint`,
|
|
18
|
+
`get_elwis_schema`, `get_elwis_examples`, registered with read-only tool annotations,
|
|
19
|
+
titles, and described parameters.
|
|
20
|
+
- Byte-bounded schema resolution: `get_elwis_schema` lowers the inlining depth
|
|
21
|
+
automatically when a response would exceed the budget and reports `depthUsed`,
|
|
22
|
+
`truncatedRefs` (expandable), and `missingRefs` (documentation gaps) separately.
|
|
23
|
+
- Search results carry `total`, `returned`, and `hasMore` pagination metadata;
|
|
24
|
+
plural query tokens match singular keywords.
|
|
25
|
+
- Endpoint details report the request content type, so non-JSON (multipart) bodies
|
|
26
|
+
are visible.
|
|
27
|
+
- Deterministic generation of MCP data from the ELWIS OpenAPI specification
|
|
28
|
+
(`export-spec` + `generate`, combined as `refresh`) with a normalization-consistent
|
|
29
|
+
`check-drift` gate; both honor `ELWIS_SWAGGER_URL` and support HTTPS.
|
|
30
|
+
- Agent skill (`skill/elwis-api`) shipped inside the npm package.
|
|
31
|
+
- Test suite covering parsers, search, data store, the MCP protocol layer, and
|
|
32
|
+
byte-size sweeps over every schema, endpoint, and examples response.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Copyright (c) 2026 Softacus. All rights reserved.
|
|
2
|
+
|
|
3
|
+
This software and its source code are proprietary and confidential to Softacus.
|
|
4
|
+
No part of this package may be copied, modified, distributed, published, or used
|
|
5
|
+
except with the express prior written permission of Softacus, or under the terms
|
|
6
|
+
of a separate written agreement. Unauthorized use is prohibited.
|
package/README.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# @softacus-software/elwis-docs-mcp
|
|
2
|
+
|
|
3
|
+
A read-only [Model Context Protocol](https://modelcontextprotocol.io) server that teaches your chat client the ELWIS REST API. Ask about endpoints, parameters, schemas, and examples in plain words. Everything is generated from the OpenAPI specification, so the answers cannot disagree with the documented API.
|
|
4
|
+
|
|
5
|
+
It serves knowledge about the API only. It never connects to a live ELWIS and cannot read or write any data.
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
+-------------------+ +---------------------+ +-------------+
|
|
9
|
+
| Your chat client | <--> | elwis-docs-mcp | <--- | OpenAPI |
|
|
10
|
+
| (Claude Desktop, | | (this server, | | spec |
|
|
11
|
+
| Codex, Gemini) | | runs on your | | (bundled) |
|
|
12
|
+
| | | computer) | | |
|
|
13
|
+
+-------------------+ +---------------------+ +-------------+
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Set up in three minutes
|
|
17
|
+
|
|
18
|
+
### Step 1. Install Node.js (one time)
|
|
19
|
+
|
|
20
|
+
Go to [nodejs.org](https://nodejs.org), download the LTS installer, run it, accept the defaults. Check it in a terminal:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
node --version
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Step 2. Sign in to npm (one time)
|
|
27
|
+
|
|
28
|
+
The package is private to the Softacus team. Ask your administrator to invite you to the softacus organization on npmjs.com (you need a free npm account), then run:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm login
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
A browser window opens; sign in with your npm account and return to the terminal.
|
|
35
|
+
|
|
36
|
+
### Step 3. Add the server to your client
|
|
37
|
+
|
|
38
|
+
Claude Desktop (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS, `%APPDATA%\Claude\claude_desktop_config.json` on Windows) and Claude Code (`.mcp.json` in the project root, same shape):
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"mcpServers": {
|
|
43
|
+
"elwis-docs": {
|
|
44
|
+
"command": "npx",
|
|
45
|
+
"args": ["-y", "@softacus-software/elwis-docs-mcp"]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Codex (`~/.codex/config.toml`):
|
|
52
|
+
|
|
53
|
+
```toml
|
|
54
|
+
[mcp_servers.elwis-docs]
|
|
55
|
+
command = "npx"
|
|
56
|
+
args = ["-y", "@softacus-software/elwis-docs-mcp"]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Gemini CLI (`~/.gemini/settings.json`): same JSON shape as Claude Desktop.
|
|
60
|
+
|
|
61
|
+
No ELWIS address, no ELWIS login. There is nothing else to configure because it never talks to a live system.
|
|
62
|
+
|
|
63
|
+
### Step 4. Check it works
|
|
64
|
+
|
|
65
|
+
Fully quit your client (on a Mac press Cmd+Q), open it again, and ask:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
Which ELWIS endpoint creates an attribute?
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
You should get the exact endpoint with its method, parameters, and a worked example.
|
|
72
|
+
|
|
73
|
+
## What to ask
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
How do I create an application through the ELWIS API?
|
|
77
|
+
What fields does the artifact type update request take?
|
|
78
|
+
Show me an example request for creating a link type.
|
|
79
|
+
What does the data type schema look like?
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Tools
|
|
83
|
+
|
|
84
|
+
| Tool | What it does |
|
|
85
|
+
|---|---|
|
|
86
|
+
| `search_elwis_api` | Find endpoints by intent, like "create an attribute" |
|
|
87
|
+
| `list_elwis_api_groups` | Browse the API area by area |
|
|
88
|
+
| `get_elwis_endpoint` | Full detail of one endpoint: method, path, parameters, schemas |
|
|
89
|
+
| `get_elwis_schema` | One request or response schema, depth-bounded |
|
|
90
|
+
| `get_elwis_examples` | Verified worked examples for an endpoint |
|
|
91
|
+
|
|
92
|
+
Every response is size-bounded (typically 1 to 6 KB), so it stays friendly to the client's context. Unknown names return clean errors with near-miss suggestions instead of guesses.
|
|
93
|
+
|
|
94
|
+
## Keeping it up to date
|
|
95
|
+
|
|
96
|
+
The data is generated deterministically from the ELWIS OpenAPI spec:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
npm run export-spec # fetch the current spec from a running ELWIS
|
|
100
|
+
npm run generate # rebuild data/ from it
|
|
101
|
+
npm run check-drift # fails when the bundled data no longer matches the spec
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
CI runs the drift check, so a released package can not silently fall behind the API.
|
|
105
|
+
|
|
106
|
+
## Development
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
npm install
|
|
110
|
+
npm run build
|
|
111
|
+
npm test
|
|
112
|
+
```
|