@havesomecode/kibana-mcp-server 0.1.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 +9 -5
- package/dist/src/config.js +10 -7
- package/docs/project/compatibility-matrix.md +1 -1
- package/docs/project/distribution-strategy.md +12 -11
- package/docs/project/npm-publishing.md +5 -4
- package/docs/project/release-checklist.md +5 -0
- package/docs/project/support-policy.md +2 -1
- package/package.json +5 -5
- package/plugins/kibana-log-investigation/.codex-plugin/plugin.json +9 -9
package/README.md
CHANGED
|
@@ -21,13 +21,16 @@ It is designed as a general-purpose log investigation MCP for environments where
|
|
|
21
21
|
|
|
22
22
|
## Project Status
|
|
23
23
|
|
|
24
|
-
This repo
|
|
24
|
+
This repo is live for external adoption and AI-agent use.
|
|
25
|
+
|
|
26
|
+
- Homepage: `https://havesomecode.github.io/kibana-mcp-server/`
|
|
27
|
+
- Published package: `npx -y @havesomecode/kibana-mcp-server`
|
|
28
|
+
- Repo-local Codex plugin install remains a first-class path for cloned checkouts
|
|
25
29
|
|
|
26
30
|
- Guaranteed: repo-local Codex plugin install (see `INSTALL.md`)
|
|
27
31
|
- Guaranteed: guided machine setup through `npm run setup`
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
- Planned: first public package release after trusted publishing is enabled
|
|
32
|
+
- Available: published package install via `npx -y @havesomecode/kibana-mcp-server`
|
|
33
|
+
- Active: semantic-release automation for tags, npm publish, and GitHub Releases
|
|
31
34
|
- Support posture and compatibility details live in `docs/project/support-policy.md`
|
|
32
35
|
- Contributing and security reporting live in `CONTRIBUTING.md` and `SECURITY.md`
|
|
33
36
|
|
|
@@ -38,6 +41,7 @@ This repo targets external adoption and AI-agent usability. It is safe for real
|
|
|
38
41
|
- Release checklist: `docs/project/release-checklist.md`
|
|
39
42
|
- npm publishing setup: `docs/project/npm-publishing.md`
|
|
40
43
|
- GitHub Releases are the canonical release notes and version record
|
|
44
|
+
- The `version` field in `package.json` inside git is not the release source of truth
|
|
41
45
|
|
|
42
46
|
## Installation
|
|
43
47
|
|
|
@@ -51,7 +55,7 @@ npm run setup
|
|
|
51
55
|
|
|
52
56
|
This repo includes a repo-scoped Codex plugin so a cloned checkout can install the MCP without any extra packaging or hosted infrastructure.
|
|
53
57
|
|
|
54
|
-
|
|
58
|
+
If you do not need the repo-local plugin workflow, the published package is already available through `npx -y @havesomecode/kibana-mcp-server`.
|
|
55
59
|
|
|
56
60
|
### Quick path
|
|
57
61
|
|
package/dist/src/config.js
CHANGED
|
@@ -74,6 +74,14 @@ export const sourceDefinitionSchema = z.object({
|
|
|
74
74
|
export const sourceCatalogSchema = z.object({
|
|
75
75
|
sources: z.array(sourceDefinitionSchema).min(1),
|
|
76
76
|
});
|
|
77
|
+
function buildKibanaConfig(env) {
|
|
78
|
+
return {
|
|
79
|
+
baseUrl: env.KIBANA_BASE_URL.replace(/\/+$/, ""),
|
|
80
|
+
username: env.KIBANA_USERNAME,
|
|
81
|
+
password: env.KIBANA_PASSWORD,
|
|
82
|
+
timeoutMs: env.KIBANA_TIMEOUT_MS ?? 10000,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
77
85
|
export function resolveSourceCatalogPath(envInput = process.env) {
|
|
78
86
|
const explicitPath = envInput.KIBANA_SOURCE_CATALOG_PATH?.trim();
|
|
79
87
|
if (explicitPath) {
|
|
@@ -85,12 +93,7 @@ export function parseAppConfig(envInput, sourceCatalogInput) {
|
|
|
85
93
|
const env = bootstrapEnvSchema.parse(envInput);
|
|
86
94
|
const sourceCatalog = sourceCatalogSchema.parse(sourceCatalogInput);
|
|
87
95
|
return {
|
|
88
|
-
kibana:
|
|
89
|
-
baseUrl: env.KIBANA_BASE_URL.replace(/\/+$/, ""),
|
|
90
|
-
username: env.KIBANA_USERNAME,
|
|
91
|
-
password: env.KIBANA_PASSWORD,
|
|
92
|
-
timeoutMs: env.KIBANA_TIMEOUT_MS ?? 10000,
|
|
93
|
-
},
|
|
96
|
+
kibana: buildKibanaConfig(env),
|
|
94
97
|
sources: sourceCatalog.sources,
|
|
95
98
|
};
|
|
96
99
|
}
|
|
@@ -105,7 +108,7 @@ export async function loadConfigFromEnvironment(envInput = process.env, dependen
|
|
|
105
108
|
const sourceCatalog = await loadSourceCatalog(preferredPath === DEFAULT_RUNTIME_SOURCE_CATALOG_PATH
|
|
106
109
|
? [preferredPath, DEFAULT_STATIC_SOURCE_CATALOG_PATH]
|
|
107
110
|
: [preferredPath], readFileImpl);
|
|
108
|
-
const config = parseAppConfig(overrides, sourceCatalog);
|
|
111
|
+
const config = parseAppConfig(overrides, sourceCatalog.value);
|
|
109
112
|
return {
|
|
110
113
|
...config,
|
|
111
114
|
sourceCatalogPath: preferredPath,
|
|
@@ -17,6 +17,6 @@ This matrix distinguishes guaranteed support from best-effort behavior. Each cla
|
|
|
17
17
|
| `elasticsearch_search` backend | Guaranteed | Verified in tests | Direct Elasticsearch-compatible search path. |
|
|
18
18
|
| Schema metadata endpoints | Best-effort | Known 404s in some deployments | `describe_fields` may fail if endpoints are blocked. |
|
|
19
19
|
| Nested query features | Best-effort | Depends on schema availability | Requires schema metadata for validation. |
|
|
20
|
-
| Public package install |
|
|
20
|
+
| Public package install | Guaranteed | Published on npm and verified through packlist, release-contract, and release automation checks | Direct machine setup uses `npx -y @havesomecode/kibana-mcp-server`. |
|
|
21
21
|
|
|
22
22
|
Upgrade a row from best-effort to guaranteed only after verifying it in CI or in a reproducible environment test and documenting the evidence here.
|
|
@@ -10,7 +10,7 @@ updated: 2026-04-09
|
|
|
10
10
|
|
|
11
11
|
- Make the MCP installable by AI agents without manual explanation.
|
|
12
12
|
- Preserve the repo-local Codex plugin workflow as the guaranteed path.
|
|
13
|
-
-
|
|
13
|
+
- Keep the public package path healthy and aligned with the repo-local workflow.
|
|
14
14
|
|
|
15
15
|
## Supported Distribution Paths
|
|
16
16
|
|
|
@@ -25,14 +25,14 @@ This is the primary, always-supported path:
|
|
|
25
25
|
|
|
26
26
|
This path is required for development and is the baseline for support.
|
|
27
27
|
|
|
28
|
-
### 2. Public package
|
|
28
|
+
### 2. Public package
|
|
29
29
|
|
|
30
|
-
The package
|
|
30
|
+
The package is published for agent-friendly execution via:
|
|
31
31
|
|
|
32
32
|
- `npx -y @havesomecode/kibana-mcp-server`
|
|
33
33
|
- MCP clients that invoke the published package binary instead of a repo-local build
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
This path depends on the following remaining true:
|
|
36
36
|
|
|
37
37
|
- npm package ownership is under maintainer control for the chosen package name
|
|
38
38
|
- Verified `npm pack` contents (runtime entrypoint, plugin metadata, README, LICENSE).
|
|
@@ -40,7 +40,7 @@ Public publishing remains gated until the following are complete:
|
|
|
40
40
|
- Clear support policy and compatibility matrix published.
|
|
41
41
|
- Trusted publishing enabled (OIDC), no long-lived publish tokens.
|
|
42
42
|
|
|
43
|
-
This path is
|
|
43
|
+
This path is live and should stay aligned with the repo-local install story and the hosted homepage.
|
|
44
44
|
|
|
45
45
|
## Artifact Boundary
|
|
46
46
|
|
|
@@ -67,12 +67,13 @@ The authoritative release record is:
|
|
|
67
67
|
- GitHub Releases
|
|
68
68
|
|
|
69
69
|
The repository does not commit generated version bumps or release notes back into git.
|
|
70
|
+
The `version` field in `package.json` on `master` is therefore a source manifest value, not an authoritative shipped version.
|
|
70
71
|
|
|
71
|
-
##
|
|
72
|
+
## Ongoing Obligations
|
|
72
73
|
|
|
73
|
-
|
|
74
|
+
Keep public publishing healthy by ensuring all of the following remain true:
|
|
74
75
|
|
|
75
|
-
- the
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
76
|
+
- the npm package identity stays under maintainer control
|
|
77
|
+
- `npm run verify` continues to enforce the published artifact boundary
|
|
78
|
+
- release automation remains green on the supported Node line
|
|
79
|
+
- the hosted homepage, repo-local install path, and support policy describe the same install contract
|
|
@@ -6,7 +6,7 @@ updated: 2026-04-09
|
|
|
6
6
|
|
|
7
7
|
# npm Publishing Setup
|
|
8
8
|
|
|
9
|
-
This repo
|
|
9
|
+
This repo publishes to npm from GitHub Actions using trusted publishing.
|
|
10
10
|
|
|
11
11
|
## Package Identity
|
|
12
12
|
|
|
@@ -33,19 +33,19 @@ It is responsible for:
|
|
|
33
33
|
|
|
34
34
|
## npm-Side Setup
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
For future maintenance:
|
|
37
37
|
|
|
38
38
|
1. Open the package settings on npmjs.com.
|
|
39
39
|
2. Add a trusted publisher.
|
|
40
40
|
3. Choose GitHub Actions.
|
|
41
41
|
4. Set:
|
|
42
|
-
- Organization or user: `
|
|
42
|
+
- Organization or user: `Havesomecode`
|
|
43
43
|
- Repository: `kibana-mcp-server`
|
|
44
44
|
- Workflow filename: `release.yml`
|
|
45
45
|
- Environment name: leave blank unless GitHub environments are added later
|
|
46
46
|
5. Save the trusted publisher.
|
|
47
47
|
6. Merge a PR into `master` with a semantic title such as `feat: ...` or `fix: ...`.
|
|
48
|
-
7.
|
|
48
|
+
7. Keep token-based publishing disabled in npm package settings after trusted publishing is verified.
|
|
49
49
|
|
|
50
50
|
## Publish Expectations
|
|
51
51
|
|
|
@@ -55,3 +55,4 @@ After package ownership is resolved:
|
|
|
55
55
|
- The package `repository` field must match this public GitHub repository exactly.
|
|
56
56
|
- The npm package name in `package.json` must stay aligned with the package configured in npm trusted publishers.
|
|
57
57
|
- Squash merge should be enabled so the semantic PR title becomes the final commit title on `master`.
|
|
58
|
+
- The published version is determined by `semantic-release` and recorded in npm, tags, and GitHub Releases; the `package.json` version committed in git is not the canonical released version.
|
|
@@ -12,7 +12,9 @@ updated: 2026-04-09
|
|
|
12
12
|
- `npm run verify` passes locally.
|
|
13
13
|
- The compatibility matrix is up to date (`docs/project/compatibility-matrix.md`).
|
|
14
14
|
- Any new env or config requirements are documented in `README.md` and `INSTALL.md`.
|
|
15
|
+
- The hosted homepage still matches the supported install paths and support posture.
|
|
15
16
|
- The npm scope and package name (`@havesomecode/kibana-mcp-server`) are owned by the maintainers.
|
|
17
|
+
- Maintainers understand that released versions are tracked in npm, tags, and GitHub Releases, not by the `package.json` version committed in git.
|
|
16
18
|
|
|
17
19
|
## Release Authorization
|
|
18
20
|
|
|
@@ -44,8 +46,11 @@ updated: 2026-04-09
|
|
|
44
46
|
5. Merge with squash merge into `master`.
|
|
45
47
|
6. Confirm the `Release` workflow either exits with no release or publishes a new version.
|
|
46
48
|
7. Validate the Git tag, GitHub Release notes, published package contents, and provenance.
|
|
49
|
+
8. Confirm the `Pages` workflow still deploys the homepage surface and that the install copy remains truthful.
|
|
47
50
|
|
|
48
51
|
## Post-Release
|
|
49
52
|
|
|
50
53
|
- Confirm install instructions still match the shipped artifact.
|
|
54
|
+
- Confirm the hosted homepage still matches the shipped artifact and current support posture.
|
|
51
55
|
- Update any compatibility claims that changed in the release.
|
|
56
|
+
- If docs mention a specific current version, verify it against npm or GitHub Releases rather than reading `package.json` in git.
|
|
@@ -23,7 +23,7 @@ This MCP is designed for operators and AI agents that need read-only access to K
|
|
|
23
23
|
- Fully autonomous repo-local plugin installation by prompting alone across all Codex model variants
|
|
24
24
|
- Schema metadata endpoints (`kibana_data_views_fields`, `kibana_index_patterns_fields`, `elasticsearch_field_caps`)
|
|
25
25
|
- Nested query features that depend on schema availability
|
|
26
|
-
-
|
|
26
|
+
- Linux secure storage when a Secret Service-compatible keyring is missing or locked
|
|
27
27
|
|
|
28
28
|
Best-effort means we will investigate issues but cannot guarantee behavior across all deployments.
|
|
29
29
|
|
|
@@ -45,6 +45,7 @@ If you find a security issue, report it through the process documented in `SECUR
|
|
|
45
45
|
- Critical security reports: acknowledge within 3 business days.
|
|
46
46
|
- Non-security issues: response cadence depends on maintainer availability.
|
|
47
47
|
- Release notes and shipped version history are published through GitHub Releases and npm, not through committed changelog updates in the repository.
|
|
48
|
+
- Questions about the current shipped version should be answered from npm or GitHub Releases, not from the `package.json` version committed in git.
|
|
48
49
|
|
|
49
50
|
## Out of Scope
|
|
50
51
|
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@havesomecode/kibana-mcp-server",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Read-only MCP server for Kibana-backed log investigation and schema-aware querying",
|
|
6
|
-
"homepage": "https://github.
|
|
6
|
+
"homepage": "https://havesomecode.github.io/kibana-mcp-server/",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/
|
|
9
|
+
"url": "git+https://github.com/Havesomecode/kibana-mcp-server.git"
|
|
10
10
|
},
|
|
11
11
|
"type": "module",
|
|
12
12
|
"main": "dist/src/mcp_entry.js",
|
|
@@ -56,10 +56,10 @@
|
|
|
56
56
|
"@biomejs/biome": "^1.8.3",
|
|
57
57
|
"@commitlint/cli": "^20.1.0",
|
|
58
58
|
"@commitlint/config-conventional": "^20.0.0",
|
|
59
|
-
"@types/node": "^24.0.0",
|
|
60
59
|
"semantic-release": "^25.0.1",
|
|
60
|
+
"@types/node": "^25.5.2",
|
|
61
61
|
"tsx": "^4.0.0",
|
|
62
62
|
"typescript": "^5.7.0",
|
|
63
|
-
"vitest": "^
|
|
63
|
+
"vitest": "^4.1.3"
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
"version": "0.1.0",
|
|
4
4
|
"description": "Install the local Kibana log investigation MCP from this repository.",
|
|
5
5
|
"author": {
|
|
6
|
-
"name": "
|
|
7
|
-
"url": "https://github.com/
|
|
6
|
+
"name": "Havesomecode",
|
|
7
|
+
"url": "https://github.com/Havesomecode"
|
|
8
8
|
},
|
|
9
|
-
"homepage": "https://github.
|
|
10
|
-
"repository": "https://github.com/
|
|
9
|
+
"homepage": "https://havesomecode.github.io/kibana-mcp-server/",
|
|
10
|
+
"repository": "https://github.com/Havesomecode/kibana-mcp-server",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"keywords": ["kibana", "logs", "mcp", "investigation", "codex"],
|
|
13
13
|
"skills": "./skills/",
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
"interface": {
|
|
16
16
|
"displayName": "Kibana Log Investigation",
|
|
17
17
|
"shortDescription": "Local Kibana log investigation MCP for Codex",
|
|
18
|
-
"longDescription": "Install
|
|
19
|
-
"developerName": "
|
|
18
|
+
"longDescription": "Install the repo-local Kibana investigation MCP for Codex, or use the published package directly. The homepage covers the public install story, while this plugin keeps the local repository workflow first-class.",
|
|
19
|
+
"developerName": "Havesomecode",
|
|
20
20
|
"category": "Productivity",
|
|
21
21
|
"capabilities": ["Interactive", "Read", "Write"],
|
|
22
|
-
"websiteURL": "https://github.
|
|
23
|
-
"privacyPolicyURL": "https://github.com/
|
|
24
|
-
"termsOfServiceURL": "https://github.com/
|
|
22
|
+
"websiteURL": "https://havesomecode.github.io/kibana-mcp-server/",
|
|
23
|
+
"privacyPolicyURL": "https://github.com/Havesomecode/kibana-mcp-server",
|
|
24
|
+
"termsOfServiceURL": "https://github.com/Havesomecode/kibana-mcp-server",
|
|
25
25
|
"defaultPrompt": [
|
|
26
26
|
"Install the Kibana Log Investigation plugin from this repo, bootstrap Node.js if needed, and configure it for my Kibana environment.",
|
|
27
27
|
"Use the Kibana Log Investigation plugin to inspect log sources and query a time window."
|