Skip to main content

Base URL

https://mcp-backend-[hash].me-central2.run.app

API Endpoints

Profiles

MethodEndpointDescription
POST/api/profiles/registerRegister new user
GET/api/profiles/meGet current profile
PUT/api/profiles/meUpdate current profile
GET/api/profiles/List all profiles (admin)
POST/api/profiles/{id}/approveApprove registration (admin)
POST/api/profiles/{id}/rejectReject registration (admin)
DELETE/api/profiles/{id}Delete user (admin)

Collections

MethodEndpointDescription
GET/api/collections/List collections
GET/api/collections/{id}Get collection details
POST/api/collections/Create collection (admin)
PUT/api/collections/{id}Update collection (admin)
DELETE/api/collections/{id}Delete collection (admin)
GET/api/collections/{id}/metadataGet runtime metadata

Access Control

MethodEndpointDescription
GET/api/access/clients/{id}/collectionsList client’s access
POST/api/access/clients/{id}/collections/{cid}Grant access
DELETE/api/access/clients/{id}/collections/{cid}Revoke access
GET/api/access/collections/{id}/clientsList collection’s clients

Audit

MethodEndpointDescription
GET/api/audit/List audit logs (admin)
POST/api/audit/Create audit entry

Rate Limits

MethodEndpointDescription
GET/api/rate-limits/tiersList all tiers
GET/api/rate-limits/tiers/active/allGet active tiers
POST/api/rate-limits/tiersCreate tier (admin)
PUT/api/rate-limits/tiers/{tier}Update tier (admin)
DELETE/api/rate-limits/tiers/{tier}Delete tier (admin)
GET/api/rate-limits/overridesList overrides (admin)
POST/api/rate-limits/overridesCreate override (admin)
GET/api/rate-limits/effective/{client_id}Get effective limit
MethodEndpointDescription
POST/api/vector/searchSemantic search
GET/api/vector/healthHealth check

Error Responses

StatusMeaningExample
400Bad Request{"detail": "Invalid request body"}
401Unauthorized{"detail": "Token expired"}
403Forbidden{"detail": "Admin access required"}
404Not Found{"detail": "Collection not found"}
409Conflict{"detail": "Already exists"}
429Rate Limited{"detail": "Rate limit exceeded", "retry_after": 3600}
500Server Error{"detail": "Internal server error"}

Health Check

GET /health
Response:
{
  "status": "healthy",
  "service": "mcp-backend"
}