Repository navigation
Releases: companygraph/mcp-server
Release list
v0.69.0
diagram draws the meta-model a unit at a time (#173). A picture of the schemas was refused once an instance declared more types than one picture holds, with the hint to name a single type; an instance that takes all four packs passed that limit, and the meta-model, the first thing a chat offers a visitor, drew nothing. The schema shape now takes unit, core or a pack the instance takes, and draws that unit's own types and what they declare: each reference a type of the unit declares, with the type it reaches, and each nesting of a type of the unit. A pack is drawn with the core types it rests on and core is drawn alone, since a pack declares into core and core never into a pack. Asked for whole, a meta-model past the limit is drawn as core rather than refused. Every schema answer carries units, each unit with how many types it declares, core first, and an answer narrowed to a unit carries that unit and has it as its title. The interface document shows the organization pack drawn as a unit.
What breaks. Nothing for a caller that reads what it asked for. The tool's input gains an optional argument and its answer two optional fields, so a strict client that validates answers against an output schema it cached has to read the tool list again. A meta-model within the limit is drawn whole as before, and type narrows as before; unit beside type is refused, and a unit the instance does not have is refused with the units it has.
How to take it. Re-pin the host to v0.69.0 and deploy. A chat in front of the host draws core for the whole meta-model at once; it says which unit it drew and names the others once chat-server takes its own next release. A connector that caches the tool list wants a refresh.
Verified: npm test (390 pass), build:check, typecheck, conventions-format and conventions-check pass on the release commit; served over companygraph/mental-model, the whole meta-model drew core with the four packs named and the requirements and landscape packs drew by name.
v0.68.0
diagram draws a use case three ways (#171). usecase takes a use case's id and draws it in its scope: the use case and what it includes inside the frame its scope draws, the primary actor outside with the mark of who holds the seat, fak:fa-human where a person does, fak:fa-agent where only agents do and fak:fa-actor where nobody does or the name is no seat, the features it asks something of, and the requirements it is held to as hexagons, a must heavy and a may dashed; the answer's actor names the actor either way. scenario takes the same id and draws the trigger, the steps in their order as boxes s0 and on with who acts, listed in nodes where the actor is a seat, and each extension dashed from its step; the answer carries steps and extensions, and an extension naming no step is counted in omitted. requirements takes the id of a feature, a product or a use case and draws what it is held to, framed by kind in the order functional, quality, constraint, with the rules followed dotted, or the id of a requirement and draws what it applies to. The interface document shows the three over the example's Download an invoice.
What breaks. Nothing. A host whose instance lacks the requirements pack refuses the three shapes with unknown_type, and no existing shape, field or refusal changes.
How to take it. Re-pin the host to v0.68.0 and deploy. A chat in front of the host asks for the shapes once chat-server takes its own release; the widget draws the actor's mark and captions the three from design v0.151.0 on.
Verified: npm test (385 pass), build:check, typecheck, conventions-format and conventions-check pass on the release commit; every contract and deployment test over the example and the reference instance passes.
v0.67.0
The package takes meta-model 0.94.0 (#169), whose parser reads the requirements pack: use-case and requirement, the goals people bring to a system and the statements a product is held to. A host whose instance takes the pack serves its use cases and requirements through every tool, and describe_relations reports a requirement's Applies to as a row-typed reference with by: "Type" and no owner column, the first of that form, since a feature, a product and a use case are owned by nothing. The worked example the tests run over takes the pack, so the interface document shows a use case and a requirement among the newest entities.
What breaks. Nothing. A host without the pack serves as before; no shape, field or refusal changes.
How to take it. Re-pin the host to v0.67.0 and deploy. An instance that takes the requirements pack moves its content pin past the page that takes it in the same change.
Verified: npm test (371 pass), build:check, typecheck, conventions-format and conventions-check pass on the branch.
v0.66.1
The diagram tool says landscape (#167). Its description said that system and holds take a system's id and nothing of what either draws, so a client that reads only the tool list, as ChatGPT does, found no shape by the word landscape and drew a neighborhood instead. The description now says that system is a system's landscape and holds its data, both by id, and the id argument says never by neighborhood, since a system's connections are its landscape. Nothing a client sends or receives changes.
What breaks. Nothing. No shape, field or refusal changes.
How to take it. Re-pin the host to v0.66.1 and deploy. A ChatGPT connector keeps the tool list from the day it was added, so after the deploy it is refreshed or re-added in ChatGPT's settings; a Claude connector reads the list anew and needs nothing.
v0.66.0
The organization picture draws who directs an agent (#165). A group's ## Direction, which the organization pack gained in companygraph/meta-model v0.92.0, says which human of the group directs which agent, one row per pair; each row is now a dotted arrow from the human's box to the agent's, with a directs link in the answer's links so a client reads the edge as data. An agent with no row keeps its frame alone, since every human in it directs it, and a row naming someone outside the frame draws nothing. An agent is one box whatever its rows, where it was a box per row, and the invisible link that held agents in a row is left out once an arrow enters the frame, since Mermaid then takes the chart's direction for the frame and the link would stack what the arrows set side by side. The package takes meta-model 0.92.0.
What breaks. Nothing. A host without the organization pack draws nothing new, and a group without a ## Direction draws as before.
How to take it. Re-pin the host to v0.66.0 and deploy. A site's chat should take robertblust/design v0.148.0 first, whose reading line says what the dotted arrow means, so no visitor sees an arrow without its sentence.
v0.65.0 — a system is drawn in its landscape and by what it holds
diagram draws one system two ways (#163). system takes a system's id and draws it in its landscape, a flowchart from left to right: the system with the class middle, what it runs on and what runs on it by dotted lines, every system it exchanges data with by a solid arrow from the system the data comes from, labeled with the interface, what is carried and how, every service it provides as a rounded box, and every row of its ## Holds as a cylinder, the data object over its concept, reached by an arrow labeled with the access, heavy for master, solid for writes, dotted for reads. holds takes the same id and draws those cylinders among every other system that masters, writes or reads the same concepts, so the picture says whose copy the system's is, or who copies its own; it is refused as empty where the system holds nothing. A box's label begins with fak:fa- and the ArchiMate element the system's kind names, a token a client draws as a mark, and ends with the kind's name as a stereotype; a planned or retiring system carries a class the source defines. links carries the model's word for every line, and nodes types each as system, service, data-object or concept. Both shapes are refused with unknown_type on an instance without the landscape pack.
What breaks. Nothing for a host: an instance without the landscape pack refuses the two shapes by code, and every other shape is unchanged.
How to take it. A host moves its pin to 0.65.0 and re-deploys. A chat that asks for the shapes needs robertblust/design v0.147.0 on its site to draw the marks; on an older widget a box shows its name without one.
Verified: npm test, build:check, typecheck and the conventions check and format pass on the branch.
v0.64.0
The server carries meta-model v0.91.0 (#161), core 0.66.0. The landscape pack's system schema changed twice there: vendor is written only on a system naming no processor, and a system a vendor runs keeps the vendor's own name for it. The server reads whatever the instance it serves wrote, so a host sees the change only through its content pin. Nothing in the server's own code moved, so the package moves to 0.64.0 alone.
What breaks. Nothing for a host.
How to take it. A host moves its pin to 0.64.0 and re-deploys; the content pin may move at the same time to an instance commit on core 0.66.0.
Verified: npm test, build:check, typecheck and the conventions check and format pass on the branch.
v0.63.0 — the server carries meta-model v0.90.0 and serves the landscape pack
The server carries meta-model v0.90.0 (#159). An instance that takes the landscape pack is served with its system, system-kind, data-object and service pages: list_types and describe_schema show the four types against the pack's schemas, get_entity on a system returns its ## Connects to and ## Holds rows with the service, the concept carried and the data object resolved as the row's attributes (R16) and the interface, the protocol and the access mode as values, list_references shows a feature's inverse edge from the system that realizes it, and diagram draws the landscape edges into a neighborhood. A product's kind is a required reference to a product kind, which describe_schema("product") says. The test fixtures derive each pack's folders from the release's PACKS, so a fourth pack needs no hand edit.
What breaks. Nothing for a host: the server reads whatever packs the instance it serves took.
How to take it. A host moves its pin to 0.63.0 and re-deploys; the content pin may move at the same time to an instance commit on core 0.65.0.
Verified: npm test, build:check, typecheck and the conventions check and format pass on the branch.
v0.62.0
The diagram tool draws an organization (#157). Shape organization is an org chart of an instance that takes the organization pack: a box per person and per open position, each group a frame, the frames side by side in the company's order, solid arrows from a lead to the leads of the units under it, dashed lines to staff, and a group's agents in a frame of their own. Without id it draws the units in the disciplinary line, or every group where a model has none; with a group's id, that group and the units under it. A group is drawn from its start to its end. Past fifty boxes it refuses with cannot_draw, and a model without the pack is refused with unknown_type.
Each person's name is preceded by fak:fa-human or fak:fa-agent, a token a client can register as an icon pack to draw the person's mark; a client that does not shows the name alone. Each frame is in nodes as g0, g1 and on, with type group, before the boxes it holds, and each of the shape's links carries the model's word for what it draws: part-of, Staff or staff. The Mermaid source writes no word of its own. label() now escapes the colon of Mermaid's icon syntax in every shape, so a title holding fas:fa-x is never drawn as an icon; a title without that syntax is written as before.
What breaks. Nothing. shape gains a value and nodes gains entries named g, both additive by docs/INTERFACE.md's own rules; no other shape's answer changes.
How to take it. A host re-pins the server by tag. The family resync carries it to the three MCP deployments, the three sites and chat-server. A chat draws the marks once its site has taken the next release of robertblust/design.
v0.61.0
The server reads companygraph/meta-model v0.88.0 (#155). The organization pack there adds an optional ## Openings table and an optional rank to a group, an optional staff to a group kind, and a Staff place, and an instance that takes the pack is served all of them, since the server serves whatever types and sections an instance's vendored schemas declare. An ## Openings row is an edge from the group to the job, via Openings.Job, with its Place, Count and Since as the edge's attributes.
What breaks. Nothing. No tool, argument or answer shape changes; docs/INTERFACE.md changes only in the sample answers it draws from the example instance, which grew.
How to take it. A host re-pins the server by tag. The family resync carries it to the three MCP deployments and the three sites.