# Ross ERP Data Dictionary

> Structure-only reference for the vanilla Ross ERP 8.0 schema, UI menu tree, and program catalog.

- name: dev.rossdata/data-dictionary
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/dev.rossdata%2Fdata-dictionary
- tools: https://api.protogrid.dev/v1/servers/dev.rossdata%2Fdata-dictionary/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "data-dictionary": {
      "type": "http",
      "url": "https://mcp.rossdata.dev/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 85
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% ~updated-76d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: search_columns (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); facility_stats (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); program_facilities (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 2,886 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 21, about 2,886 tokens to load them all
- tool set hash: fd9fbe34b1f7e97370554c47055adddf
- badge: [![protogrid quality](https://protogrid.dev/badge/dev.rossdata/data-dictionary.svg)](https://protogrid.dev/servers/dev.rossdata/data-dictionary)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://mcp.rossdata.dev/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (21)

- `facility_programs`: Cross-link a UI facility to the program(s) that implement it — 'what code runs this screen?'. Each program carries a match label: declared (named by the facility's menu entry, authoritative) or titleId (TITLE id equals the facility code). Complements lookup_facility (which gives the facility's tables and call graph). Metadata only — no source body.
- `facility_stats`: Overview of the Ross ERP 8.0 application layer — the client menu tree of UI facilities (screens, reports, inquiries, maintenance functions): total facilities, and their breakdown by system (e.g. ACCOUNTS_PAYABLE), database (FIN/MAN) and class (REPORT, MAINTENANCE, INQUIRY, ...). Use this first to orient before browsing facilities.
- `find_column`: Look up a single column by exact name across the whole Ross ERP 8.0 schema: its description, valid values, notes, every table that carries it, and any foreign-key roles it plays.
- `get_ddl`: Return the CREATE TABLE (DDL) for a Ross ERP 8.0 table, with column descriptions as comments plus primary-key and foreign-key constraints.
- `graph_neighbors`: List the knowledge-graph neighbours of an object — the programs, tables, views and procedures directly connected to it, with relationship type and direction.
- `list_facilities`: Browse and filter Ross ERP 8.0 UI facilities (menu screens/functions). Filter by system, database, class, a name/code substring, or withTables (only facilities whose table cluster is known); paginate with limit/offset. Returns summaries — use lookup_facility for full detail.
- `list_objects`: Browse and filter Ross ERP 8.0 objects (tables / views / procedures / functions). Filter by type, database, module, or a name substring; paginate with limit/offset. Returns object summaries — use lookup_table for full detail.
- `list_programs`: Browse and filter Ross ERP 8.0 programs (application source, metadata only). Filter by module (ap, gl, ic, sop, ...), type (a=archive, i=inquiry, m=maintenance, r=report, s=server, l=load, u=utility, ...), layer (base | vendor-core), titled (only programs that declare a TITLE id), or a substring of basename/title; paginate with limit/offset. Returns summaries — use lookup_program for full detail.
- `lookup_facility`: Full detail for one Ross ERP 8.0 UI facility by code: its name, system, database, class, GEMBASE program, help text, menu paths, the physical table cluster it touches — core (the working set the screen is built on) and reference (control/lookup tables) — and its call graph: the facilities this one invokes (calls) and the facilities that invoke it (calledBy), parsed from the program source.
- `lookup_program`: Full detail for one Ross ERP 8.0 program, by TITLE program-id (e.g. AP_A_002) or source basename (e.g. ap_a_check_register): its module, type, layer, declared title, internal PROCEDURE_FORM procedures, the Data Dictionary tables it references — each classified read vs read-write (a write is a FIND IN.../LOCK=WRITE update, an ADD, or a DELETE) with a writeCount — its call graph (the programs it invokes and the programs that invoke it, from PERFORM "GEM<mod>:<prog>"), the menu facilities it backs, and — for programs with no TITLE label — a display name carried from the menu facility's registry description. Metadata only — no source body.
- `lookup_table`: Full schema for a Ross ERP 8.0 object (table / view / procedure / function): columns with type, nullability, keys, descriptions and valid values, foreign keys in and out, related tables, and usage.
- `path_between`: Find the shortest path between two objects in the Ross ERP 8.0 knowledge graph (how A reaches B through calls / references / accesses).
- `program_facilities`: Reverse of facility_programs: which UI facilities (menu screens / reports / inquiries) a program backs — 'what screens does this program run?'. One program often serves several facilities. Lookup by TITLE id (e.g. AP_I_001) or basename (e.g. ap_i_vendors); each facility carries the same declared / titleId match label.
- `program_stats`: Overview of the Ross ERP 8.0 program catalog — every application-source program (metadata only, no source body): total programs, how many declare a TITLE id, how many carry Data Dictionary table links, total program→table edges, read/write counts (withWrites programs, writeEdges program→table write edges), base vs vendor-core split, program→program call-graph counts (programs with outbound calls, total call edges) and how many back a menu facility, plus the module and type breakdowns. Use this first to orient before browsing programs.
- `schema_stats`: Overview of the Ross ERP 8.0 schema in one call: object counts by type, module list, total/distinct columns, audit-twin pairs, and the top tables/columns/modules. Use this first to orient before drilling in.
- `search_all`: Cross-domain search in one call — spans schema objects, columns, UI facilities and programs at once. Use this when you don't yet know which layer a term lives in (e.g. 'check register' is a screen, a program and a table). Scope to one layer with type = object | column | facility | program (default all); limit is per domain.
- `search_columns`: Search the Ross ERP 8.0 schema by name (and column descriptions). Returns matching objects and columns.
- `search_facilities`: Search Ross ERP 8.0 UI facilities by code, name, help text, program or tag. Use this to find the screen/report for a task, e.g. 'check register' or 'purchase order receipts'.
- `search_programs`: Search Ross ERP 8.0 programs by basename, TITLE program-id, title, module or type. Use this to find the program behind a task, e.g. 'check register' or 'ap_a'.
- `table_facilities`: Reverse lookup: which UI facilities (screens/reports/programs) touch a given Ross ERP 8.0 table — split into core (facilities whose working set includes it) and reference (facilities that use it as a control/lookup), each with how many times the program source accesses it. Answers 'what screens read or write this table?'.
- `table_programs`: Reverse lookup: which standard Ross ERP 8.0 programs reference a given table (validated against the Data Dictionary). Answers 'what code touches this table?' — complements table_facilities (which answers 'what screens touch it?'). Metadata only — no source body.
