{"openapi":"3.1.0","info":{"title":"Cosign public directory and member MCP","version":"1.0.0","description":"Read published directory summaries without authentication. For personalized research and account actions, connect the OAuth-protected member MCP at https://api.cosign.co/mcp.","contact":{"url":"https://cosign.co/contact"}},"servers":[{"url":"https://cosign.co"}],"externalDocs":{"url":"https://cosign.co/docs"},"paths":{"/api/v1/directory/people":{"get":{"operationId":"listPublicPeople","summary":"List published people","description":"A bounded page of the website's public directory. Follow nextCursor until null, including when items is empty. Cursors are opaque, tied to this directory, and do not provide snapshot isolation.","security":[],"parameters":[{"name":"limit","in":"query","description":"Maximum source entries inspected per page; visibility filtering can return fewer entries.","schema":{"type":"integer","minimum":1,"maximum":60,"default":20}},{"name":"cursor","in":"query","description":"The unchanged nextCursor from the previous response for this directory.","schema":{"type":"string","minLength":1,"maxLength":8192}}],"responses":{"200":{"description":"Published directory entries. updatedAt is Unix time in milliseconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectoryPage"}}}},"400":{"description":"JSON error. For 503, wait for Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"JSON error. For 503, wait for Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"JSON error. For 503, wait for Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/directory/companies":{"get":{"operationId":"listPublicCompanies","summary":"List published companies","description":"A bounded page of the website's public directory. Follow nextCursor until null, including when items is empty. Cursors are opaque, tied to this directory, and do not provide snapshot isolation.","security":[],"parameters":[{"name":"limit","in":"query","description":"Maximum source entries inspected per page; visibility filtering can return fewer entries.","schema":{"type":"integer","minimum":1,"maximum":60,"default":20}},{"name":"cursor","in":"query","description":"The unchanged nextCursor from the previous response for this directory.","schema":{"type":"string","minLength":1,"maxLength":8192}}],"responses":{"200":{"description":"Published directory entries. updatedAt is Unix time in milliseconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectoryPage"}}}},"400":{"description":"JSON error. For 503, wait for Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"JSON error. For 503, wait for Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"JSON error. For 503, wait for Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/mcp":{"servers":[{"url":"https://api.cosign.co"}],"post":{"operationId":"memberMcpRequest","summary":"Send an MCP JSON-RPC request","description":"Use an MCP client with Streamable HTTP and OAuth PKCE. Initialize, then call tools/list for account-specific schemas. Tool calls enforce the scopes required by each tool; editing and company tools need additional consent. This is JSON-RPC, not a REST action endpoint.","security":[{"memberOAuth":["member:read"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number"]},"method":{"type":"string"},"params":{"type":"object","additionalProperties":true}},"additionalProperties":false}}}},"responses":{"200":{"description":"MCP JSON-RPC response; inspect tool isError as well as HTTP status.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/event-stream":{"schema":{"type":"string"}}}},"202":{"description":"Notification accepted."},"401":{"description":"Authorization required; discover resource metadata from WWW-Authenticate."},"429":{"description":"Request budget exhausted; respect Retry-After."}}}}},"components":{"securitySchemes":{"memberOAuth":{"type":"oauth2","description":"Authorization code with PKCE S256. Include resource=https://api.cosign.co/mcp. Dynamic registration: https://api.cosign.co/register. Request member:read explicitly for read-only access.","flows":{"authorizationCode":{"authorizationUrl":"https://api.cosign.co/authorize","tokenUrl":"https://api.cosign.co/token","refreshUrl":"https://api.cosign.co/token","scopes":{"member:read":"Browse Cosign and read your own supported account data.","member:write":"Edit your own supported profile, lists, requests and saved jobs.","company:read":"Read supported data for companies you manage.","company:write":"Edit supported data for companies you manage."}}}}},"schemas":{"DirectoryEntry":{"type":"object","required":["path","name","description","imageUrl","updatedAt"],"properties":{"path":{"type":"string","description":"Canonical profile path on https://cosign.co."},"name":{"type":"string"},"description":{"type":["string","null"]},"imageUrl":{"type":["string","null"]},"updatedAt":{"type":"number","description":"Unix timestamp in milliseconds."}}},"DirectoryPage":{"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DirectoryEntry"}},"nextCursor":{"type":["string","null"],"description":"Continue until null, even after an empty page."}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}