Skip to content

Smithery and Glama manifests, registry publishing steps - #60

Merged
oblomov-dev merged 2 commits into
mainfrom
claude/abap2ui5-competitor-analysis-3m3r6i
Oct 15, 2026
Merged

oblomov-dev merged 2 commits into
mainfrom
claude/abap2ui5-competitor-analysis-3m3r6i

Conversation

@oblomov-dev

Copy link
Copy Markdown
Member

What changes

  • smithery.yaml: generated from server.json by scripts/check-server-json.mjs --sync. It describes a stdio server started with npx -y -p @abap2ui5/mcp-server abap2ui5-mcp, with one optional config property per documented env var.
  • glama.json: the schema URL plus the maintainers.
  • check:server-json: now also fails when smithery.yaml differs from its rendering or when glama.json deviates. New tests are in test/server-json.test.mjs.
  • RELEASING.md: a new section, "Listing a release in the registries", covering the version-sync rule, mcp-publisher by hand, and the one-time Smithery and Glama steps. The automated path through release.yml already existed.
  • Smaller notes: one README sentence naming the registries, an AGENTS.md note, and a CHANGELOG line.

Nothing is published by this PR.

Verified

Check Result
npm run check:server-json ok (37 env vars)
npm test 557 passed, 18 skipped by design
server.json against the registry schema 2025-12-11 (ajv) valid

Not verified: mcp-publisher validate, smithery.ai and glama.ai could not be reached from here.

🤖 Generated with Claude Code

https://claude.ai/code/session_011N8v1iay9ZgmK3Bzj8iqK5


Generated by Claude Code

…ate for all three

The Smithery directory reads smithery.yaml from the repository root, Glama
claims an organization's listing by glama.json. Both repeat facts this
repository already states - the start command the README registers, the
environment variables server.json lists, the package name - and a copy
written by hand is a copy that drifts.

- smithery.yaml is GENERATED: scripts/check-server-json.mjs --sync renders
  the stdio start command (npx -y -p @abap2ui5/mcp-server abap2ui5-mcp) and
  a configSchema with one optional property per listed variable, same name,
  same description, enum from choices, number where the format says so;
  commandFunction hands every set property to the process as its env.
  The gate fails when the file on disk is not what server.json renders to.
  (Parsed with js-yaml and the configSchema compiled with ajv in strict
  mode once, by hand: valid YAML, valid JSON Schema, {} accepted, unknown
  keys refused.)
- glama.json carries the schema URL and the maintainers' GitHub user names,
  which is all Glama documents; the gate refuses any other key.
- package.json's version script git-adds smithery.yaml too, so npm version
  carries all three files in one commit.
- test/server-json.test.mjs pins the registry facts (schema URL, name ==
  mcpName, both versions == package.json, registry.npmjs.org), that every
  listed variable is read by server.mjs/lib and every A2UI5_MCP_* read is
  listed, that smithery.yaml equals the render and its commandFunction
  returns the README's command, and that each drift the gate exists for is
  reported.

server.json itself was validated against the registry's 2025-12-11
server.schema.json (ajv, draft-07, formats): valid. Nothing is published;
npm test 557 pass.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011N8v1iay9ZgmK3Bzj8iqK5
- RELEASING.md gains "Listing a release in the registries": the version
  rule (server.json's two version fields == package.json's, or the registry
  refuses the listing after npm holds the version), the by-hand sequence
  for the official MCP Registry (install mcp-publisher, npm run
  check:server-json, mcp-publisher validate, login github, publish, the
  search URL to confirm) as the current registry docs give it, and the
  one-time manual steps on smithery.ai (add the server from the repository)
  and glama.ai (Claim ownership as a user glama.json names). The release
  workflow already refuses a tag whose server.json and package.json
  versions differ, in both jobs; nothing was added to CI.
- README names the three catalogues under the install buttons.
- AGENTS.md: the maintenance trap - smithery.yaml is generated, edit
  server.json and run --sync; glama.json is two documented keys.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011N8v1iay9ZgmK3Bzj8iqK5
@oblomov-dev
oblomov-dev merged commit d0640b5 into main Oct 15, 2026
1 of 3 checks passed
@oblomov-dev
oblomov-dev deleted the claude/abap2ui5-competitor-analysis-3m3r6i branch October 15, 2026 15:03
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.

2 participants