Skip to content

Commit f34c7d5

Browse files
tcconnallyclaude
andauthored
mcp: registry-ready (server.json oci/ghcr, v2.6.0/43 tools, Dockerfile label, OIDC publish) (#270)
Fix stale server.json: version 2.0.0->2.6.0, 36 tools->43, replace the invalid 'github' registryType with 'oci' (ghcr.io/perseus-computing-llc/mimir), drop a non-existent curl-install line. Add the MCP ownership LABEL to the Dockerfile (matches server.json name) and an OIDC publish workflow for the MCP Registry. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent d7a4f06 commit f34c7d5

3 files changed

Lines changed: 51 additions & 9 deletions

File tree

.github/workflows/mcp-registry.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Publish to MCP Registry
2+
3+
# Publishes server.json to registry.modelcontextprotocol.io.
4+
# Runs after a GitHub Release, or on demand. Auth is GitHub OIDC (no token):
5+
# the workflow's identity proves ownership of the io.github.Perseus-Computing-LLC
6+
# namespace. Package ownership is proven by the OCI label on the GHCR image
7+
# (io.modelcontextprotocol.server.name in the Dockerfile), so publish after the
8+
# docker.yml image push for a release has completed.
9+
10+
on:
11+
release:
12+
types: [published]
13+
workflow_dispatch:
14+
15+
permissions:
16+
contents: read
17+
id-token: write
18+
19+
jobs:
20+
publish:
21+
runs-on: ubuntu-latest
22+
steps:
23+
- uses: actions/checkout@v4
24+
25+
- name: Install mcp-publisher
26+
run: |
27+
curl -fsSL "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_amd64.tar.gz" \
28+
| tar -xz mcp-publisher
29+
30+
- name: Authenticate (GitHub OIDC)
31+
run: ./mcp-publisher login github-oidc
32+
33+
- name: Publish server.json
34+
run: ./mcp-publisher publish

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ COPY build.rs ./
1717
RUN cargo build --release --no-default-features && strip target/release/mimir
1818

1919
FROM alpine:3.21
20+
# Ownership proof for the MCP Registry (must equal server.json "name").
21+
LABEL io.modelcontextprotocol.server.name="io.github.Perseus-Computing-LLC/mimir"
2022
RUN apk add --no-cache sqlite-libs
2123
COPY --from=builder /app/target/release/mimir /usr/local/bin/mimir
2224
ENTRYPOINT ["/usr/local/bin/mimir"]

server.json

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
{
22
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
33
"name": "io.github.Perseus-Computing-LLC/mimir",
4-
"title": "Mimir — Persistent Memory Engine for AI Agents",
5-
"description": "MCP-native, local-first persistent memory for AI agents. Rust binary with SQLite+FTS5+hybrid vector search, Ebbinghaus decay, knowledge graph, journal audit trail, state management with TTL, AES-256-GCM encryption, vault import/export, and conflict detection. Zero network calls, no API keys required. 36 MCP tools over stdio/SSE/HTTP. Install: curl -sSf https://get.mimir.perseus.observer | sh",
6-
"version": "2.0.0",
4+
"title": "Mimir, persistent memory engine for AI agents",
5+
"description": "MCP-native, local-first persistent memory for AI agents. A single Rust binary: SQLite with FTS5 plus hybrid vector search, AES-256-GCM encryption at rest, bi-temporal fact history, Ebbinghaus decay, journal audit trail, and conflict detection. Zero network calls, no API keys. 43 MCP tools over stdio. Distributed via GHCR and GitHub releases.",
6+
"version": "2.6.0",
77
"packages": [{
8-
"registryType": "github",
9-
"identifier": "Perseus-Computing-LLC/mimir",
10-
"version": "2.0.0",
8+
"registryType": "oci",
9+
"identifier": "ghcr.io/perseus-computing-llc/mimir",
10+
"version": "2.6.0",
11+
"transport": {"type": "stdio"},
12+
"runtimeHint": "docker",
13+
"runtimeArguments": [
14+
{"type": "named", "name": "-i"},
15+
{"type": "named", "name": "--rm"},
16+
{"type": "named", "name": "-v", "value": "mimir-data:/data"}
17+
],
1118
"packageArguments": [
1219
{"type": "positional", "value": "serve"},
1320
{"type": "positional", "value": "--db"},
14-
{"type": "positional", "value": "~/.mimir/data/mimir.db"}
15-
],
16-
"transport": {"type": "stdio"}
21+
{"type": "positional", "value": "/data/mimir.db"}
22+
]
1723
}],
1824
"websiteUrl": "https://github.com/Perseus-Computing-LLC/mimir",
1925
"repository": {

0 commit comments

Comments
 (0)