openapi: 3.2.0 info: title: TESSA Agent Directory Extensions API version: 0.1.0 description: 'TESSA Marketing & Technology''s FastAPI service behind aiagent.tessa.tech: the A2A agent card and JSON-RPC endpoint, per-service and per-tenant agent cards, the professional-services directory (firm cards, profiles, introduction requests, claim/verify/removal/takedown flows), the TESSA Professional Services A2A extension, service-type taxonomies, an admin/vector surface, and the mount point of the MCP server (/mcp, Streamable HTTP).' contact: name: TESSA Marketing & Technology url: https://tessa.tech email: sales@tessa.tech x-apievangelist-provenance: harvested: '2026-09-19' method: searched source: https://aiagent.tessa.tech/openapi.json original: openapi/_original/tessa-tech-openapi.json original_sha256: 3349c7e2613aca4fb5736b570f082a2d509e1147b8a82183b71dafff0722f6da changes: - servers[] added (the harvested spec declares none); hosts taken from the provider's own root document at https://aiagent.tessa.tech/ and verified by an identical-byte spec at complianceregistry.net/openapi.json and marketingregistry.org/openapi.json - info.description and info.contact added; contact values from the agent card (_meta.tessa.contact) and server.json (support_email) ownership: Served on tessa.tech's own subdomain; info.title names TESSA; the agent card at the same host names TESSA Marketing & Technology as provider with url https://tessa.tech; the root document names the app 'TESSA MCP Server + Agent Directory'. servers: - url: https://aiagent.tessa.tech description: TESSA's own agent host — agent card, A2A JSON-RPC, MCP (/mcp/), service cards (/s), OpenAPI. Registry-scoped routes return 421 here. - url: https://complianceregistry.net description: TESSA-operated Compliance Registry (same application, same spec bytes). Registry routes (/registry.json, /taxonomy, /extensions, /{slug}) resolve here. - url: https://marketingregistry.org description: TESSA-operated Local Business / Marketing Registry (same application, same spec bytes). tags: - name: Extensions paths: /extensions/: get: summary: Extensions Index operationId: extensions_index_extensions__get responses: '200': description: Successful Response content: text/html: schema: type: string tags: - Extensions /extensions/tessa-professional-services/v1/: get: summary: Extension Spec Page operationId: extension_spec_page_extensions_tessa_professional_services_v1__get responses: '200': description: Successful Response content: text/html: schema: type: string tags: - Extensions /extensions/tessa-professional-services/v1: get: summary: Extension Spec Page operationId: extension_spec_page_extensions_tessa_professional_services_v1_get responses: '200': description: Successful Response content: text/html: schema: type: string tags: - Extensions /extensions/tessa-professional-services/v1/schema.json: get: summary: Extension Schema operationId: extension_schema_extensions_tessa_professional_services_v1_schema_json_get responses: '200': description: Successful Response content: application/json: schema: {} tags: - Extensions /extensions/tessa-professional-services/v1/example.json: get: summary: Extension Example operationId: extension_example_extensions_tessa_professional_services_v1_example_json_get responses: '200': description: Successful Response content: application/json: schema: {} tags: - Extensions /extensions/tessa-professional-services/v1/changelog: get: summary: Extension Changelog operationId: extension_changelog_extensions_tessa_professional_services_v1_changelog_get responses: '200': description: Successful Response content: text/html: schema: type: string tags: - Extensions