UMT integration contract
August 12, 2026 ยท View on GitHub
@universal-mcp-toolkit/core exports a strict, versioned integration manifest schema for documenting evidence consistently without requiring every server to migrate at once.
import {
UMT_INTEGRATION_SCHEMA_VERSION,
summarizeIntegrationReadiness,
validateIntegrationManifest,
} from "@universal-mcp-toolkit/core";
const manifest = validateIntegrationManifest({
schemaVersion: UMT_INTEGRATION_SCHEMA_VERSION,
id: "github",
title: "GitHub",
version: "1.0.0",
maturity: "beta",
packageName: "@universal-mcp-toolkit/server-github",
maintainership: "first-party",
transports: ["stdio", "streamable-http"],
auth: {
envVars: ["GITHUB_TOKEN"],
scopes: ["repo:read"]
},
tools: [
{
name: "search_repositories",
behavior: {
readOnly: true,
destructive: false,
idempotent: true
}
}
],
conformance: {
contractTests: ["test/contract.test.ts"],
launchTest: "ci:launch-test",
securityReview: "docs:security-review",
protocolRevisions: ["2025-06-18"]
}
});
console.log(summarizeIntegrationReadiness(manifest));
The readiness helper reports which evidence is present or missing. It does not automatically declare an integration secure or production-ready; maintainers remain responsible for reviewing the linked evidence.
Contract fields
- Maturity:
stable,beta,experimental, orexternal - Maintainership:
first-party,community, orexternal - Transports:
stdio,streamable-http, and legacysse - Authentication: required environment variables and upstream scopes
- Tool behavior: read-only, destructive, and idempotent annotations
- Conformance evidence: contract tests, launch test, security review, and tested protocol revisions
Manifests are strict and reject unknown fields, duplicate tool names, duplicate evidence, malformed package names, and contradictory read-only/destructive annotations.