Move intent closer to the tool

An agent can generate spreadsheet scripts or manipulate diagram XML directly, but then it must reason about both the task and the serialization library. A small visual change can require a surprising amount of implementation detail.

FCP is an application framework on top of the Model Context Protocol. Its drivers expose operations in the language of a particular document: cells and charts for a spreadsheet, shapes and connections for a diagram, notes and tempo for MIDI. The driver translates those operations into the target format.

A small, consistent surface

Each server provides four core tools: batched mutations, read-only queries, session actions, and a reference card. Operations share a grammar of verbs, positional arguments, named parameters, and selectors. A driver can add narrowly scoped, read-only supplementary tools when its domain needs them.

The shared framework handles parsing, dispatch, response formatting, and session history. That gives agents a familiar way to open, inspect, change, checkpoint, undo, and save documents across otherwise unrelated formats.

A small diagram, expressed as three operations
add svc AuthService theme:blue
add db UserDB theme:green near:AuthService dir:right
connect AuthService -> UserDB label:queries

The abstraction has to earn its keep

A useful driver does more than rename a library’s methods. The draw.io driver maintains a semantic graph and handles positioning and layout. The spreadsheet driver accepts table blocks, formulas, formatting, and charts, then writes an ordinary Excel workbook.

The tradeoff is coverage: a domain vocabulary must be expressive enough for real work, and every supported operation needs reliable translation and history behavior. Native files keep the result portable. The agent’s session is one way to work on the document, and people can continue editing it in existing applications.