Skip to content

Interfaces

MCP is always aoi_dsl_query plus the DSL command. There is no per-table MCP resource.

Interface model

Topic Contract
Same data REST, DSL, and MCP are three access paths over one schema. DSL ⊇ REST. MCP ⊆ DSL.
MCP One tool, aoi_dsl_query. There is no per-table MCP resource. Natural-language translation (aoi_natural_language / POST /api/translate) emits DSL; it does not read tables itself.
Not in this dictionary Auth, admin, health, and matching stores that are not query surfaces (token lexicon, embeddings, name_claims).

Table → interface

Table REST DSL MCP
companies GET /api/companies
GET /api/companies/{name}
GET /api/companies/search
GET /api/companies/badges
GET /api/companies/badges/counts
GET /api/companies/{name}/badges
LIST COMPANIES
GET COMPANY
LIST COMPANY_BADGES
COUNT COMPANY_BADGES
aoi_dsl_query with the DSL command
company_aliases + companies GET /api/companyconvert COMPANYCONVERT aoi_dsl_query with COMPANYCONVERT
industries GET /api/industries LIST INDUSTRIES aoi_dsl_query
company_occupation_summary GET /api/companies/{name}/occupations
GET /api/companies/{name}/clusters
GET /api/occupations/badges
GET /api/occupations/badges/counts
GET /api/occupations/{onet}/companies
GET /api/clusters/{id}/companies
LIST OCCUPATIONS FOR COMPANY
LIST COMPANIES FOR CLUSTER
LIST OCCUPATION_BADGES
COUNT OCCUPATION_BADGES
aoi_dsl_query
occupation_cluster GET /api/occupations/{onet}
GET /api/occupations/{onet}/clusters
GET /api/clusters
GET /api/clusters/{id}
GET /api/clusters/convert
LIST OCCUPATIONS
GET OCCUPATION
LIST CLUSTERS
GET CLUSTER
CLUSTERCONVERT
aoi_dsl_query
occupation_info GET /api/occupations
GET /api/occupations/{onet}/education
GET /api/occupations/{onet}/pathways
GET /api/clusters
GET /api/clusters/{id}
GET /api/clusters/{id}/education
GET /api/clusters/{id}/skill-adj-clusters
GET /api/clusters/{id}/cluster-destinations
LIST OCCUPATIONS
LIST CLUSTERS
GET CLUSTER
GET EDUCATION
GET PATHWAYS
aoi_dsl_query
ai_expertise_impact GET /api/occupations/{onet}/ai-impact
GET /api/clusters/{id}/ai-impact
(also joined onto occupation/cluster lists when filtering by ai_flag / trends)
GET AI_IMPACT FOR CLUSTER
LIST OCCUPATIONS/CLUSTERS WHERE AI_FLAG / ENTRY_BARRIER_TREND / EXPERTISE_PREMIUM_TREND
aoi_dsl_query
wage_data GET /api/occupations/{onet}/wages
GET /api/clusters/{id}/wages
GET WAGES aoi_dsl_query
promotion_retention GET /api/clusters/{id}/retention
GET /api/clusters/{id}/skill-adj-clusters (metrics block)
GET RETENTION aoi_dsl_query
location_mapping GET /api/location/zip/{zip}
GET /api/location/cbsa/{cbsa}
GET LOCATION aoi_dsl_query
hiring_flag GET /api/companies/{name}/hiring GET HIRING FOR COMPANY aoi_dsl_query
title_conversion, title_probability, occupation_name_catalog, name_company_evidence, title_match_hints GET /api/titleconvert
GET /api/clusters/convert
TITLECONVERT [EXPAND CLUSTER]
CLUSTERCONVERT
Batch TITLECONVERT ["a","b",…] (DSL/MCP only)
aoi_dsl_query with TITLECONVERT / CLUSTERCONVERT
titleconvert_picks POST /api/titleconvert SUBMIT TITLECONVERT aoi_dsl_query with SUBMIT TITLECONVERT
company_uid_name Not a route. Resolves UIDs on company relationship expansion. GET COMPANY EXPAND RELATIONSHIPS
LIST COMPANIES EXPAND RELATIONSHIPS
aoi_dsl_query