@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 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
+ ```