generated: '2026-08-01' method: derived source: mcp/gotham-greens-mcp.yml + openapi/gotham-greens-*-openapi.yml summary: >- Binds every candidate MCP tool to its backing OpenAPI operation so each tool inherits a REAL input schema — that operation's `parameters` block — instead of a guessed one. Confidence is `high` on every row for an unusual reason: the tool list was derived FROM the operations, one per operationId, so the binding is definitional rather than inferred. There are no MCP-only and no REST-only rows: the two surfaces are the same twenty operations by construction. Recorded anyway because the shape is what makes the tool a first-class discovery unit, and because the divergence sections are the honest place to say "none, and here is why". surfaces: openapi: files: - openapi/gotham-greens-posts-api-openapi.yml - openapi/gotham-greens-pages-api-openapi.yml - openapi/gotham-greens-media-api-openapi.yml - openapi/gotham-greens-taxonomy-api-openapi.yml - openapi/gotham-greens-search-api-openapi.yml - openapi/gotham-greens-discovery-api-openapi.yml - openapi/gotham-greens-oembed-api-openapi.yml - openapi/gotham-greens-seo-api-openapi.yml gated: false note: >- Derived by API Evangelist from the live route index; every operation verified anonymously readable. Not published by the provider. graphql: endpoint: null gated: null note: >- No GraphQL surface. https://www.gothamgreens.com/graphql returned 404 and no WPGraphQL namespace appears in the route index. mcp: url: null gated: null note: >- No MCP server published by Gotham Greens; tools/list could not be called because there is no endpoint to call. Tool list is a candidate derived from REST. crosswalk: - tool: list_journal_posts category: content rest: [listPosts] binding: rest confidence: high - tool: get_journal_post category: content rest: [getPost] binding: rest confidence: high - tool: list_pages category: content rest: [listPages] binding: rest confidence: high - tool: get_page category: content rest: [getPage] binding: rest confidence: high - tool: list_media category: media rest: [listMedia] binding: rest confidence: high - tool: get_media_item category: media rest: [getMediaItem] binding: rest confidence: high - tool: list_categories category: taxonomy rest: [listCategories] binding: rest confidence: high - tool: get_category category: taxonomy rest: [getCategory] binding: rest confidence: high - tool: list_tags category: taxonomy rest: [listTags] binding: rest confidence: high - tool: get_tag category: taxonomy rest: [getTag] binding: rest confidence: high - tool: search_content category: search rest: [searchContent] binding: rest confidence: high - tool: get_root_index category: discovery rest: [getRootIndex] binding: rest confidence: high - tool: get_namespace_index category: discovery rest: [getNamespaceIndex] binding: rest confidence: high - tool: list_content_types category: discovery rest: [listTypes] binding: rest confidence: high - tool: get_content_type category: discovery rest: [getType] binding: rest confidence: high - tool: list_taxonomies category: discovery rest: [listTaxonomies] binding: rest confidence: high - tool: get_taxonomy category: discovery rest: [getTaxonomy] binding: rest confidence: high - tool: list_post_statuses category: discovery rest: [listStatuses] binding: rest confidence: high - tool: get_oembed category: metadata rest: [getOembed] binding: rest confidence: high - tool: get_seo_head category: metadata rest: [getSeoHead] binding: rest confidence: high mcp_only: [] rest_only: [] divergence_note: >- Both divergence lists are empty because there is no independently published MCP or GraphQL surface to diverge from — the candidate tool set is a 1:1 projection of the derived REST contract. The real divergence on this provider is a different one, and it is worth stating plainly: the live route index advertises 406 routes across 17 namespaces, of which only the 20 operations above are anonymously readable. The remaining routes are either administrative (users, settings, themes, plugins, menus, block-types, revisions — all verified 401) or belong to plugin namespaces (Yoast admin, Google Site Kit, Wordfence, SiteGround, Redirection, WPMU DEV, Complianz) that are operational surfaces of the site, not content. Those are deliberately excluded rather than missing. coverage: tools_named: 20 tools_bound: 20 mcp_only: 0 rest_ops_total: 20 rest_ops_with_tool: 20 routes_advertised_by_host: 406 routes_anonymously_readable_and_modelled: 20