@kozmos-tech/inhalt 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/README.md +54 -0
- package/bin/cli.js +21 -0
- package/package.json +34 -0
package/README.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# @kozmos-tech/inhalt
|
|
2
|
+
|
|
3
|
+
MCP bridge for [Inhalt](https://inhalt.tech) — the CMS your AI tools can run.
|
|
4
|
+
|
|
5
|
+
Inhalt's MCP server is hosted and remote. This package is a tiny launcher that
|
|
6
|
+
bridges any stdio MCP client to the hosted endpoint, so clients that only speak
|
|
7
|
+
stdio (or launch servers via `npx`) can connect with one config block.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
Add Inhalt to your MCP client config:
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"mcpServers": {
|
|
16
|
+
"inhalt": {
|
|
17
|
+
"command": "npx",
|
|
18
|
+
"args": ["-y", "@kozmos-tech/inhalt"]
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
That's it. On first run the bridge opens a browser to sign in (OAuth); after that
|
|
25
|
+
your session is cached. The client then sees Inhalt's content tools — read and
|
|
26
|
+
query the schema, list and get entries, create, patch, publish, and delete.
|
|
27
|
+
|
|
28
|
+
## Authentication
|
|
29
|
+
|
|
30
|
+
- **OAuth (default):** the first run opens a browser to authorize the connection.
|
|
31
|
+
- **API key:** for scripts and headless setups, mint a scoped key in the Inhalt
|
|
32
|
+
dashboard and pass it as a bearer token via your client's header settings.
|
|
33
|
+
|
|
34
|
+
## Self-hosting
|
|
35
|
+
|
|
36
|
+
Point the bridge at your own Inhalt instance with an environment variable:
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"mcpServers": {
|
|
41
|
+
"inhalt": {
|
|
42
|
+
"command": "npx",
|
|
43
|
+
"args": ["-y", "@kozmos-tech/inhalt"],
|
|
44
|
+
"env": { "INHALT_MCP_URL": "https://cms.example.com/mcp" }
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
`INHALT_MCP_URL` defaults to `https://inhalt.tech/mcp`.
|
|
51
|
+
|
|
52
|
+
## License
|
|
53
|
+
|
|
54
|
+
MIT
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Thin stdio -> remote bridge for the Inhalt MCP server.
|
|
3
|
+
//
|
|
4
|
+
// Inhalt's MCP server is remote (Streamable HTTP at https://inhalt.tech/mcp,
|
|
5
|
+
// OAuth + API-key auth). This launcher execs the mcp-remote CLI against that
|
|
6
|
+
// endpoint so any stdio-only client can connect via `npx @kozmos-tech/inhalt`.
|
|
7
|
+
// Self-hosters can point at their own instance with INHALT_MCP_URL.
|
|
8
|
+
import { spawn } from "node:child_process"
|
|
9
|
+
import { createRequire } from "node:module"
|
|
10
|
+
|
|
11
|
+
const require = createRequire(import.meta.url)
|
|
12
|
+
const url = process.env.INHALT_MCP_URL ?? "https://inhalt.tech/mcp"
|
|
13
|
+
|
|
14
|
+
// Resolve mcp-remote's CLI entry from its own package.json "bin" so we don't
|
|
15
|
+
// hardcode a dist path that could move between releases.
|
|
16
|
+
const pkg = require("mcp-remote/package.json")
|
|
17
|
+
const binRel = typeof pkg.bin === "string" ? pkg.bin : pkg.bin["mcp-remote"]
|
|
18
|
+
const cli = require.resolve(`mcp-remote/${binRel}`)
|
|
19
|
+
|
|
20
|
+
const child = spawn(process.execPath, [cli, url, ...process.argv.slice(2)], { stdio: "inherit" })
|
|
21
|
+
child.on("exit", (code) => process.exit(code ?? 0))
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@kozmos-tech/inhalt",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "MCP bridge for Inhalt — the CMS your AI tools can run. Connects any stdio MCP client to the hosted Inhalt server.",
|
|
5
|
+
"mcpName": "io.github.kozmos-tech/inhalt",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"bin": {
|
|
9
|
+
"inhalt-mcp": "bin/cli.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"bin",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
15
|
+
"keywords": [
|
|
16
|
+
"mcp",
|
|
17
|
+
"modelcontextprotocol",
|
|
18
|
+
"cms",
|
|
19
|
+
"inhalt"
|
|
20
|
+
],
|
|
21
|
+
"engines": {
|
|
22
|
+
"node": ">=18"
|
|
23
|
+
},
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/kozmos-tech/inhalt.git",
|
|
27
|
+
"directory": "packages/mcp"
|
|
28
|
+
},
|
|
29
|
+
"homepage": "https://inhalt.tech",
|
|
30
|
+
"bugs": "https://github.com/kozmos-tech/inhalt/issues",
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"mcp-remote": "^0.1.38"
|
|
33
|
+
}
|
|
34
|
+
}
|