Skip to content

docs: present Cortex as a cross-platform memory MCP - #349

Merged
cdeust merged 1 commit into
mainfrom
agent/cross-platform-positioning
Aug 3, 2026
Merged

docs: present Cortex as a cross-platform memory MCP#349
cdeust merged 1 commit into
mainfrom
agent/cross-platform-positioning

Conversation

@cdeust

@cdeust cdeust commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • lead with Cortex as a cross-platform memory MCP for Codex, Gemini CLI, Claude Code, and other local stdio MCP hosts
  • align README, MCPB, npm, PyPI, and MCP Registry descriptions and keywords
  • keep the boundary explicit: the 52-tool server is host-agnostic, while automatic lifecycle capture and injection remain Claude Code plugin hooks

The GitHub repository description and topics were updated separately so the same positioning is visible in search and discovery.

Validation

  • python scripts/check_doc_claims.py
  • pytest --confcutdir=tests_py/scripts -q tests_py/scripts/test_cross_host_manifests.py tests_py/scripts/test_codex_plugin_contract.py tests_py/scripts/test_check_doc_claims.py — 116 passed
  • git diff --check

@cdeust
cdeust merged commit 159b432 into main Aug 3, 2026
20 checks passed
@cdeust
cdeust deleted the agent/cross-platform-positioning branch August 3, 2026 00:39
cdeust added a commit that referenced this pull request Aug 10, 2026
Addresses a general-principle gap the neighboring session's 422 exposed.

Verified, not assumed, before writing anything:
- server.json AT TAG v4.17.2 (curl raw.githubusercontent.com/cdeust/
  Cortex/v4.17.2/server.json, JSON-parsed, len() on the actual field) is
  95 chars — already compliant. The tag is NOT blocked; the earlier claim
  that it carries a 113-char description was checked against the primary
  source and found wrong (that value exists only on `main`, in a commit
  159b432/#349 that landed AFTER v4.17.2 was tagged and was never in any
  tag). PENDING_REGISTRY's "resolves on the next tag" NOTICE was already
  accurate.
- The 100-char limit itself: fetched
  https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json
  directly, read definitions.ServerDetail.properties.description ->
  maxLength: 100, minLength: 1 (also required at the top level). Not
  copied from the neighboring session's report.

General fix: check_marketplace_pins.py validated server.json's VERSION
against the registry but never its SCHEMA — a file with the exactly
right version can still 422 at publish time over an unrelated field.
New check_server_json_schema (offline, no network) validates description
length against the schema-derived bounds above, wired into
check_registry_surface so it runs whenever server.json exists (not
gated on having a registry `name`, unlike the version check — a schema
violation matters independent of whether this repo publishes to the
registry). New failure classes: SERVER_JSON_DESCRIPTION_TOO_LONG,
SERVER_JSON_DESCRIPTION_TOO_SHORT.

This closes the general case, not just the one incident: it checks
whatever server.json is on the ref this gate runs against (PR branch or
main) — the tree a FUTURE tag will be cut from, which is the only tree
an offline pre-tag check can affect. An already-tagged historical commit
is immutable regardless of what any check finds now.

9 new tests including a direct replay of the neighboring incident's
144-char description (asserts SERVER_JSON_DESCRIPTION_TOO_LONG fires)
and a non-fixture assertion against this repo's own real, committed
server.json. tests_py/scripts/ 778 passed (was 771), 5 skipped.
check_marketplace_pins.py exits 0 live; check_craftsmanship.py --base
origin/main clean; ruff/pyright clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
cdeust added a commit that referenced this pull request Aug 10, 2026
Addresses a general-principle gap the neighboring session's 422 exposed.

Verified, not assumed, before writing anything:
- server.json AT TAG v4.17.2 (curl raw.githubusercontent.com/cdeust/
  Cortex/v4.17.2/server.json, JSON-parsed, len() on the actual field) is
  95 chars — already compliant. The tag is NOT blocked; the earlier claim
  that it carries a 113-char description was checked against the primary
  source and found wrong (that value exists only on `main`, in a commit
  159b432/#349 that landed AFTER v4.17.2 was tagged and was never in any
  tag). PENDING_REGISTRY's "resolves on the next tag" NOTICE was already
  accurate.
- The 100-char limit itself: fetched
  https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json
  directly, read definitions.ServerDetail.properties.description ->
  maxLength: 100, minLength: 1 (also required at the top level). Not
  copied from the neighboring session's report.

General fix: check_marketplace_pins.py validated server.json's VERSION
against the registry but never its SCHEMA — a file with the exactly
right version can still 422 at publish time over an unrelated field.
New check_server_json_schema (offline, no network) validates description
length against the schema-derived bounds above, wired into
check_registry_surface so it runs whenever server.json exists (not
gated on having a registry `name`, unlike the version check — a schema
violation matters independent of whether this repo publishes to the
registry). New failure classes: SERVER_JSON_DESCRIPTION_TOO_LONG,
SERVER_JSON_DESCRIPTION_TOO_SHORT.

This closes the general case, not just the one incident: it checks
whatever server.json is on the ref this gate runs against (PR branch or
main) — the tree a FUTURE tag will be cut from, which is the only tree
an offline pre-tag check can affect. An already-tagged historical commit
is immutable regardless of what any check finds now.

9 new tests including a direct replay of the neighboring incident's
144-char description (asserts SERVER_JSON_DESCRIPTION_TOO_LONG fires)
and a non-fixture assertion against this repo's own real, committed
server.json. tests_py/scripts/ 778 passed (was 771), 5 skipped.
check_marketplace_pins.py exits 0 live; check_craftsmanship.py --base
origin/main clean; ruff/pyright clean.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant