You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a generated MCP server.json export for integration catalog entries that describe MCP servers, while keeping integrations/catalog/*.json as the only hand-authored source of truth.
This follows the same principle as the integration catalog unification work: one manually maintained integration JSON per service, with derived artifacts generated from it.
Motivation
The MCP ecosystem has an official server.json format for describing MCP servers. For OpenHands catalog entries that already represent MCP servers, we should align with that standard instead of maintaining only a bespoke catalog shape.
This should make OpenHands integrations easier to compare with, publish to, or consume alongside the MCP registry, while still preserving OpenHands-specific UX metadata such as credential labels, install hints, default connection choices, and Integration Hub / Agent Canvas behavior.
Proposed approach
Keep integrations/catalog/*.json as the only hand-edited source of truth.
Add a generator, likely under scripts/, that emits server.json-compatible files for catalog entries with MCP connection options.
Generate only for MCP entries; HTTP/OpenAPI-only integrations can remain OpenHands-specific.
This issue was created by an AI agent (OpenHands) on behalf of Graham Neubig.
PR evidence acceptance criteria
Current main evidence: On current main, attempt to generate MCP server.json artifacts from the catalog and show that no schema-valid generator/output contract exists.
PR branch evidence: On the PR branch, modify one source catalog entry, regenerate, and verify deterministic schema-valid artifacts only for MCP entries, correct shttp/SSE/stdio mappings, preserved namespaced OpenHands metadata, and no hand edits to generated files.
Required evidence package: The PR records both commit SHAs and exact environment/setup. Run the full relevant backend, service, infrastructure, or data pipeline live with PR code and attach commands plus output/logs; a movie or video is not a substitute for this live run. Attach generator/validation commands, schema version, representative diffs, and a clean regeneration check.
Summary
Add a generated MCP
server.jsonexport for integration catalog entries that describe MCP servers, while keepingintegrations/catalog/*.jsonas the only hand-authored source of truth.This follows the same principle as the integration catalog unification work: one manually maintained integration JSON per service, with derived artifacts generated from it.
Motivation
The MCP ecosystem has an official
server.jsonformat for describing MCP servers. For OpenHands catalog entries that already represent MCP servers, we should align with that standard instead of maintaining only a bespoke catalog shape.This should make OpenHands integrations easier to compare with, publish to, or consume alongside the MCP registry, while still preserving OpenHands-specific UX metadata such as credential labels, install hints, default connection choices, and Integration Hub / Agent Canvas behavior.
Proposed approach
integrations/catalog/*.jsonas the only hand-edited source of truth.scripts/, that emitsserver.json-compatible files for catalog entries with MCP connection options.transport.kind: "shttp"->remotes[].type: "streamable-http"transport.kind: "sse"->remotes[].type: "sse"npx -y @modelcontextprotocol/server-*-> npm package with stdio transport._metafield, e.g.dev.openhandsor another agreed reverse-DNS namespace.server.schema.json.Non-goals
server.jsonfiles the source of truth.Acceptance criteria
server.jsonartifacts from the current integration catalog.integrations/catalog/*.jsonremains the manual source of truth.Related context
Follow-up to the integration catalog unification PRs:
This issue was created by an AI agent (OpenHands) on behalf of Graham Neubig.
PR evidence acceptance criteria
mainevidence: On current main, attempt to generate MCP server.json artifacts from the catalog and show that no schema-valid generator/output contract exists.