GuestGraph: One guest, not five strangers
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
What a refused call looks like. A tool's output schema covers its answers only, so use this once, to branch on refusals or validate them. No input. Returns `errors`, every `code` with `when` it is raised and the JSON Schema of its `details`, and `schema`, the JSON Schema of a whole refusal: `error` with `code`, `message`, `rule`, `details`, beside `model`.
This tool takes no arguments.
What a refused call looks like. A tool's output schema covers its answers only, so use this once, to branch on refusals or validate them. No input. Returns `errors`, every `code` with `when` it is raised and the JSON Schema of its `details`, and `schema`, the JSON Schema of a whole refusal: `error` with `code`, `message`, `rule`, `details`, beside `model`.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}What the schemas declare between types: references with form and cardinality, ownership, enums, joins, list kinds. Use for a diagram or audit; for one type's full schema use describe_schema. Optional `type` narrows every list, `direction` (declares, declared-to, both; needs `type`) one side of relations, `via` relations and enums. Returns those lists, with `forms` and `reading` explaining every term. Not paged.
| Argument | Type | Description |
|---|---|---|
| via | string | |
| type | string | |
| direction | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"via": {
"type": "string"
},
"type": {
"type": "string"
},
"direction": {
"enum": [
"declares",
"declared-to",
"both"
],
"type": "string"
}
}
}One convention of the vocabulary as written, not a company's own rule (an entity of type `rule`: list_entities, get_entity). Input: `rule`, a number from list_rules such as R9, in either case. Returns `rule`, `title`, `part`, `text` and the file's `url`. An unknown number is refused with the known ones listed.
| Argument | Type | Description |
|---|---|---|
| rule* | string | A convention's number from list_rules, such as R9 |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"rule"
],
"properties": {
"rule": {
"type": "string",
"description": "A convention's number from list_rules, such as R9"
}
}
}One type's schema: its sections as written and its declared relations as data. Use to learn what an entity of the type may hold; for the whole vocabulary use describe_relations. Input: `type`. Returns `url`, the schema's own file, `sections`, and `relations`: owner, owns, references both ways, enums, joins and lists.
| Argument | Type | Description |
|---|---|---|
| type* | string | A type name from list_types, such as skill |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"description": "A type name from list_types, such as skill"
}
}
}A picture of the model as Mermaid; edge data: list_references. Input: `shape`; `id`, `domain`, `type` or `unit` narrow it. aggregate, flow, lifecycle take a context's `id`; organization without `id` draws the company; system a landscape, holds its data; usecase, scenario a use case's; requirements a feature's, product's, use case's or requirement's. Returns `mermaid`, `nodes`, `links`, `units`, counts. Max 50 nodes.
| Argument | Type | Description |
|---|---|---|
| id | string | The process, the entity at a neighborhood's middle, the bounded context of a context map, or the aggregate or bounded context of an aggregate, flow or lifecycle picture, the group an organization is narrowed to, or the system drawn in its landscape by system and by the data it holds by holds, the use case drawn by usecase and scenario, or the feature, product, use case or requirement whose requirements are drawn, never by neighborhood |
| type | string | A type, to draw its schema and the types it is declared with |
| unit | string | core or a pack, to draw that unit's types and what they declare; a meta-model too large to draw whole is drawn as core, and `units` in the answer names every unit |
| shape* | string | |
| domain | string | A domain's id or address, to draw its concepts |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"shape"
],
"properties": {
"id": {
"type": "string",
"description": "The process, the entity at a neighborhood's middle, the bounded context of a context map, or the aggregate or bounded context of an aggregate, flow or lifecycle picture, the group an organization is narrowed to, or the system drawn in its landscape by system and by the data it holds by holds, the use case drawn by usecase and scenario, or the feature, product, use case or requirement whose requirements are drawn, never by neighborhood"
},
"type": {
"type": "string",
"description": "A type, to draw its schema and the types it is declared with"
},
"unit": {
"type": "string",
"description": "core or a pack, to draw that unit's types and what they declare; a meta-model too large to draw whole is drawn as core, and `units` in the answer names every unit"
},
"shape": {
"enum": [
"concepts",
"process",
"neighborhood",
"schema",
"context",
"aggregate",
"flow",
"lifecycle",
"organization",
"system",
"holds",
"usecase",
"scenario",
"requirements"
],
"type": "string"
},
"domain": {
"type": "string",
"description": "A domain's id or address, to draw its concepts"
}
}
}One entity's page as written. Use to quote or display the source; for structured fields and references use get_entity. Input: `id` or address, from search, list_entities or any reference. Returns `id`, `title`, `type`, `url` and `text`, the Markdown source. Takes no name: search with match "name" finds the id.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
}Every edge into one skill, grouped by the type of the page that drew it. Use to check a claimed skill against its evidence. Input: `skill`, an id, canonical name or address; optional `limit`, `cursor`. Returns `skill`, `evidence` and `page`; a profile's claim arrives via Skills.Skill with its level, an evidence row via Evidence.Skill. Attributes are verbatim.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Entries per page: 50 by default, clamped to 1–200, so 0 returns one entry and 1000 returns 200. |
| skill* | string | The skill's id, canonical name or address |
| cursor | string | `page.nextCursor` from the previous answer, sent with the same arguments; omit it for the first page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"skill"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Entries per page: 50 by default, clamped to 1–200, so 0 returns one entry and 1000 returns 200."
},
"skill": {
"type": "string",
"description": "The skill's id, canonical name or address"
},
"cursor": {
"type": "string",
"description": "`page.nextCursor` from the previous answer, sent with the same arguments; omit it for the first page."
}
}
}One entity as structured data: fields, sections, tables, references both ways. Use to reason over one; for its page as written use fetch. Input: `id` or address, where its page sits, or `type` and `name`; an ambiguous name is refused with candidate ids. Returns `entity`, by id. Reference lists hold at most 50 edges; `referenceCounts` gives totals, list_references the rest.
| Argument | Type | Description |
|---|---|---|
| id | string | The entity's id, as any answer gives it, or its address, where its page sits |
| name | string | The canonical name, the entity's H1; needs type |
| type | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"description": "The entity's id, as any answer gives it, or its address, where its page sits"
},
"name": {
"type": "string",
"description": "The canonical name, the entity's H1; needs type"
},
"type": {
"type": "string"
}
}
}The checks the model's own gate runs, from the checker release this server was built with. Use to see which rules a script enforces and which are left to a reader. No input. Returns `checks`, each with `name`, `rule`, `title` and what it `reports`, a `failure` or a `note` that fails nothing, and `ranBy`. This server runs none of them.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Entities with their frontmatter's short facts, in address order or newest first. Use to browse, or for what runs on a date, came last or has a value; to find by words use search. Input: optional `type`, `owner`, `order`, `on`, `by`, `where`, `fields`, `limit`, `cursor`. Returns `entities` with `fields`, and `page`; follow `page.nextCursor` while `page.hasMore`.
| Argument | Type | Description |
|---|---|---|
| by | string | A date field, such as start or decided, to order by in the direction order names |
| on | string | A date, YYYY, YYYY-MM or YYYY-MM-DD: keep the entities whose period, start to end, holds it; an absent end is still running |
| type | string | A type, to keep its entities; leave it out to list every type |
| limit | integer | Entries per page: 50 by default, clamped to 1–200, so 0 returns one entry and 1000 returns 200. |
| order | string | address, where the pages sit, by default; newest or oldest, by when each entity came into the model, or by the date `by` names |
| owner | string | An owner's id or address, to keep its entities |
| where | object | Field values to keep, ignoring case, by field name; a reference matches by the name its page writes |
The model's edges, filtered and paged. Use to inspect one entity's relations or one kind of reference without taking whole entities. Optional `entity` (an id or address), `direction` (out, in, both; needs `entity`), `via`, `type` (the far end's type, or either end's without `entity`), `limit`, `cursor`. Returns `edges`, each `from`, `via`, `to`, `attrs`, and `page`.
| Argument | Type | Description |
|---|---|---|
| via | string | |
| type | string | |
| limit | integer | Entries per page: 50 by default, clamped to 1–200, so 0 returns one entry and 1000 returns 200. |
| cursor | string | `page.nextCursor` from the previous answer, sent with the same arguments; omit it for the first page. |
| entity | string | |
| direction | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"via": {
"type": "string"
},
"type": {
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Entries per page: 50 by default, clamped to 1–200, so 0 returns one entry and 1000 returns 200."
},
"cursor": {
"type": "string",
"description": "`page.nextCursor` from the previous answer, sent with the same arguments; omit it for the first page."
},
"entity": {
"type": "string"
},
"direction": {
"enum": [
"out",
"in",
"both"
],
"type": "string"
}
}
}The vocabulary's conventions the model is held to, R0 onwards, from its core's CONVENTIONS.md. Use to resolve a number a schema or refusal cites, such as R9. A company's own rules are entities of type `rule`: list_entities and get_entity. No input. Returns `tagline`, the file's `url`, and `rules`, each with `rule`, `title` and `part`; describe_rule gives one rule's text.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Every type the model's schemas declare. Use first, to learn which types exist before listing or describing one. No input. Returns `types`, each with `type`, `name`, `tagline`, `owner` (the type it nests under, or null) and `count`, the entities it holds.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Find entities by words, substring or exact name. `match: "words"` needs every query word's stem in name, tagline, fields, sections or cells; `"text"` (default) is a case-insensitive substring over the same; `"name"` the exact canonical name. Optional `type`, `owner`, `limit`, `cursor`. Returns `results` with `id`, `title`, `type`, `matched`, `words` in words mode, and `page`: name matches first, then a listing.
| Argument | Type | Description |
|---|---|---|
| type | string | |
| limit | integer | Entries per page: 50 by default, clamped to 1–200, so 0 returns one entry and 1000 returns 200. |
| match | string | |
| owner | string | An owner's id or address, to keep its entities |
| query* | string | |
| cursor | string | `page.nextCursor` from the previous answer, sent with the same arguments; omit it for the first page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"type": {
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Entries per page: 50 by default, clamped to 1–200, so 0 returns one entry and 1000 returns 200."
},
"match": {
"enum": [
"text",
"name",
"words"
],
"type": "string"
},
"owner": {
"type": "string",
"description": "An owner's id or address, to keep its entities"
},
"query": {
"type": "string"
},
"cursor": {
"type": "string",
"description": "`page.nextCursor` from the previous answer, sent with the same arguments; omit it for the first page."
}
}
}| cursor | string | `page.nextCursor` from the previous answer, sent with the same arguments; omit it for the first page. |
| fields | array | Fields to add by name beside the short ones every entity carries, such as an array |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"by": {
"type": "string",
"description": "A date field, such as start or decided, to order by in the direction order names"
},
"on": {
"type": "string",
"description": "A date, YYYY, YYYY-MM or YYYY-MM-DD: keep the entities whose period, start to end, holds it; an absent end is still running"
},
"type": {
"type": "string",
"description": "A type, to keep its entities; leave it out to list every type"
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Entries per page: 50 by default, clamped to 1–200, so 0 returns one entry and 1000 returns 200."
},
"order": {
"enum": [
"address",
"newest",
"oldest"
],
"type": "string",
"description": "address, where the pages sit, by default; newest or oldest, by when each entity came into the model, or by the date `by` names"
},
"owner": {
"type": "string",
"description": "An owner's id or address, to keep its entities"
},
"where": {
"type": "object",
"description": "Field values to keep, ignoring case, by field name; a reference matches by the name its page writes",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"cursor": {
"type": "string",
"description": "`page.nextCursor` from the previous answer, sent with the same arguments; omit it for the first page."
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields to add by name beside the short ones every entity carries, such as an array"
}
}
}