{"name":"io.guestgraph/mental-model","slug":"guestgraph-mental-model","title":"GuestGraph","description":"GuestGraph: One guest, not five strangers","url":"https://mcp.market/server/guestgraph-mental-model","rating":null,"grade":"C","score":67,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":5,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":11,"ok":11,"last_checked_at":"2026-09-27T11:11:06.056Z","last_ok_at":"2026-09-27T11:11:06.056Z","latency_ms":1356},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":null,"version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://mcp.guestgraph.io/mcp"}],"packages":[],"tools":[{"name":"describe_errors","description":"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`.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"describe_relations","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"type":{"type":"string"},"direction":{"type":"string","enum":["declares","declared-to","both"]},"via":{"type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"describe_rule","description":"One rule as written. 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"rule":{"type":"string","description":"A rule's number from list_rules, such as R9"}},"required":["rule"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"describe_schema","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"type":{"type":"string","description":"A type name from list_types, such as skill"}},"required":["type"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"fetch","description":"One entity's page as written. Use to quote or display the source; for structured fields and references use get_entity. Input: `id`, 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"find_evidence","description":"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 or canonical name; 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"skill":{"type":"string","description":"The skill's id or canonical name"},"limit":{"description":"Entries per page: 50 by default, clamped to 1–200, so 0 returns one entry and 1000 returns 200.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"`page.nextCursor` from the previous answer, sent with the same arguments; omit it for the first page.","type":"string"}},"required":["skill"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_entity","description":"One entity as structured data: fields, sections, tables and its references both ways. Use to reason over an entity; for its page as written use fetch. Input: `id`, or `type` and `name`; an ambiguous name is refused with candidate ids. Returns `entity`. Each reference list holds at most 50 edges; `referenceCounts` gives the totals and list_references the rest.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"description":"The entity's id, as any answer gives it","type":"string"},"type":{"type":"string"},"name":{"description":"The canonical name, the entity's H1; needs type","type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"list_checks","description":"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` and that rule's `title`, and `ranBy`. A list and no verdict: this server runs none of them.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"list_entities","description":"The entities of one type, by id. Use to browse a type; to find an entity by words or by name use search. Input: `type`, optional `owner` (an id) to keep one owner's entities, `limit` (default 50, at most 200) and `cursor`. Returns `entities` with `id`, `type`, `name`, `tagline`, `owner`, and `page`; follow `page.nextCursor` while `page.hasMore`.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"type":{"type":"string"},"owner":{"description":"An owner's id, to keep its entities","type":"string"},"limit":{"description":"Entries per page: 50 by default, clamped to 1–200, so 0 returns one entry and 1000 returns 200.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"`page.nextCursor` from the previous answer, sent with the same arguments; omit it for the first page.","type":"string"}},"required":["type"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"list_references","description":"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), `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`.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"entity":{"type":"string"},"direction":{"type":"string","enum":["out","in","both"]},"via":{"type":"string"},"type":{"type":"string"},"limit":{"description":"Entries per page: 50 by default, clamped to 1–200, so 0 returns one entry and 1000 returns 200.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"`page.nextCursor` from the previous answer, sent with the same arguments; omit it for the first page.","type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"list_rules","description":"The rules the model is held to, from the CONVENTIONS.md its core vendors. Use to resolve a rule number that a schema or a refusal cites, such as R9. No input. Returns `tagline`, the file's `url`, and `rules`, each with `rule`, `title` and `part`; describe_rule gives one rule's text.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"list_types","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"search","description":"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`: a listing, not a ranking.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string"},"match":{"type":"string","enum":["text","name","words"]},"type":{"type":"string"},"owner":{"description":"An owner's id, to keep its entities","type":"string"},"limit":{"description":"Entries per page: 50 by default, clamped to 1–200, so 0 returns one entry and 1000 returns 200.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"`page.nextCursor` from the previous answer, sent with the same arguments; omit it for the first page.","type":"string"}},"required":["query"],"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":67,"grade":"C","scanned_at":"2026-09-24T21:39:25.081Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T21:39:25.045Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1329ms"]},"poisoning":{"score":15,"max":15,"notes":["13 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://mcp.guestgraph.io/mcp","reachable":true,"authRequired":false,"latencyMs":1329,"serverInfo":{"name":"companygraph-mcp-server","version":"0.29.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI+CiAgPHJlY3Qgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiByeD0iNyIgZmlsbD0iIzBmMTAxMyIvPgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzdhYTBmZiIgc3Ryb2tlLXdpZHRoPSIyLjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+CiAgICA8cGF0aCBkPSJNOS40IDguNCBMMTkuOCAxNC40Ii8+CiAgICA8cGF0aCBkPSJNOS40IDE2IEwxOC44IDE2Ii8+CiAgICA8cGF0aCBkPSJNOS40IDIzLjYgTDE5LjggMTcuNiIvPgogICAgPGNpcmNsZSBjeD0iNy40IiBjeT0iOC40IiByPSIyLjMiIGZpbGw9IiMwZjEwMTMiLz4KICAgIDxjaXJjbGUgY3g9IjcuNCIgY3k9IjE2IiAgcj0iMi4zIiBmaWxsPSIjMGYxMDEzIi8+CiAgICA8Y2lyY2xlIGN4PSI3LjQiIGN5PSIyMy42IiByPSIyLjMiIGZpbGw9IiMwZjEwMTMiLz4KICA8L2c+CiAgPGNpcmNsZSBjeD0iMjMiIGN5PSIxNiIgcj0iNC45IiBmaWxsPSIjN2FhMGZmIi8+Cjwvc3ZnPgo=","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":5}}}},"grade_history":[],"reviews":[]}