Skip to main content
Monospace from Directus: An AX Audit

Monospace from Directus: An AX Audit

· 28 min read
Hash Kader
Software engineer and technical writer

Monospace scored 27 out of 100 on Cloudflare's isitagentready.com, which checks how readable a website is for AI agents. That's a low score for a product whose tagline is "The Governed API Layer for Every App, Person, and Agent".

Monospace is a new governed API layer from Monospace Inc., the company behind Directus, with a built-in MCP server for agents.

Four days after launch, we put Monospace through our agent experience (AX) audit, following our AX audit method, to see whether an AI coding agent can:

  • know about it without searching
  • find it when it's looking for a tool like it
  • recommend it once it's found
  • install it and build a working integration
How we tested

All testing used Claude Opus 5.5 (claude-opus-5-5) in Claude Code 2.1.285, on 6 October 2026. Every session started in a fresh, empty folder with no project files, memory, MCP servers, skills or plugins. Awareness questions ran with no tools at all, and discoverability and reputation questions with web search and web fetch only. We ran each prompt once, so treat these results as one developer's experience rather than a benchmark.


What is Monospace from Directus?​

Monospace is a governed API layer that connects to your existing databases and gives apps, people and AI agents live read-write access through one permissions model. It's made by Monospace Inc., the company behind the open-source Directus data platform. Monospace's launch article (2 October 2026) calls it a public preview, while the Directus community announcement calls it generally available. Here's what we confirmed on Monospace's own site and docs on 6 October 2026:

  • Deployment. Self-hosted with Docker. There's no self-serve hosted version, and the "Get Started" button leads to a contact form.
  • Connectors. PostgreSQL, MySQL and MariaDB are available, with SingleStore and TiDB in beta. HubSpot, Stripe, Salesforce, Zendesk, Jira and others are listed as coming soon, and other systems need custom connectors on the Enterprise plan.
  • Agent access. Each workspace has an MCP server with seven tools (list_items, create_items, update_item, delete_item, read_schema, read_data_sources and mutate_schema), authenticated with an API key. There's also a REST API, a TypeScript SDK, a CLI and an agent skills plugin for Claude Code.
  • Pricing. The Starter plan is free (1 workspace, 3 users). Row/column-level security, audit logs, SSO, service accounts and custom roles and policies are on the custom-priced Business and Enterprise plans.

Scores at a glance​

Agents don't know Monospace, and only find it when they search for its own tagline. Once they do find it, they like the design but hedge every recommendation, and often fill gaps with facts about Directus. The integration went well. The agent installed Monospace, loaded our data and answered questions over MCP with a few short human steps, but the free plan blocks the governance features Monospace leads with.

FAIL
Awareness
1 / 4
Unknown from memory; the name only brings up the Directus company
POOR
Discoverability
2 / 4
Found only by searching its own tagline, and not even then in one of three tests
POOR
Reputation
2 / 4
Liked, never recommended outright; facts often wrong or borrowed from Directus
OK
Integration
3 / 4
Working MCP integration with correct answers; field-level permissions blocked on the free plan
POOR
Overall
2 / 4
Works once an agent knows it exists; getting there is the hard part

See our AX audit rubric for how we score each stage.


Does the model know Monospace?​

Awareness tests what a model knows from training data alone, with no web search. For a product launched four days earlier, we expected the answer to be no. What matters is how the model fails, whether it admits it doesn't know, makes something up, or confuses Monospace with something else.

FAIL
1 / 4
Unknown from memory; the name only brings up the Directus company
FAIL
Unknown, or confused with something else
POOR
Recognises the name, details vague or invented
OK
Accurate description from memory
GOOD
Accurate, and recommended unprompted

We first described Monospace's pitch without naming it:

I want a single API layer in front of our Postgres database, a few internal REST APIs and some SaaS tools, with row- and field-level permissions and an audit log for every caller, including AI agents. What would you use? Answer from your own knowledge.

The agent confidently picked one product, Hasura DDN, with OPA for complex policies. A broader question about governed agent access to company data got a stack of five or more products instead, opening with:

"No single product covers all of this. What works is a stack of layers..."

That's the gap Monospace says it fills. Then we named it:

What is Monospace (monospace.io)?

What do you know about Monospace, the "governed API layer"? What does it do, and who is it for? Say clearly if you don't know.

Tap any screenshot to zoom in and read it, tap again to close.

Terminal screenshot: asked what monospace.io is, the agent says it is the company behind DirectusTerminal screenshot: asked about Monospace the governed API layer, the agent says it does not know

Given the domain, the agent answered "To my knowledge, Monospace (monospace.io) is the company behind Directus, the open-source headless CMS / data platform." and said nothing about the governed API layer. Given the tagline instead, it said it didn't know, and treated "governed API layer" as a generic category phrase ("That describes the category, not this specific product.").

Asked whether Monospace was a good choice for giving agents database access, it refused to vouch either way and listed what to look for in any such tool, including read-only access, row-level permissions, per-agent credentials, audit logs, self-hosting and MCP support. Monospace claims almost every item on that list.

The model never invented features, which is good behaviour. But a developer asking their agent about Monospace today either hears about Directus or gets "I don't know". The agent also raised two name clashes, monospace fonts and Google's old internal "Monospace" codename for what became Project IDX.

FAIL
Awareness
1 / 4
Unknown from memory; the name only brings up the Directus company

What Monospace can do about it​

Training data catches up slowly, so there's no quick fix here. The useful work is making sure the next training cut sees Monospace as a product in its own right. That means launch posts, guides and comparisons that pair the name with what it does ("Monospace, the governed API layer from Directus") rather than using the name on its own.


Can an agent find Monospace?​

Discoverability tests whether an agent with web search finds the product when it's looking for something like it. We ran three six-question "funnels" in a single session each. Each funnel starts with a broad problem and narrows towards Monospace one question at a time, then names it at question 6. We recorded the first question where Monospace appeared.

POOR
2 / 4
Found only by searching its own tagline
FAIL
Only appears when named
POOR
Only appears with its own positioning language
OK
Appears for a specific description of the problem
GOOD
Top choice for broad problem descriptions

Each funnel asks from a different angle, because different people describe the same problem differently.

FunnelWho's askingStarts withFirst mention of Monospace
AA team wanting agents to use company data"My company wants to let AI agents work with our internal data"Question 5, by searching for "governed API layer"
BA backend developer"One API in front of several databases"Question 6, only when named
CSomeone building agents"I'm ending up with a separate MCP server for every system"Question 5, by searching for "governed API layer"

Questions 3 and 4 described Monospace's features closely, then asked the agent to search online for newer tools, including anything launched in the last few months. It never found Monospace from either. In funnel A, the hunt for new launches turned up a two-week-old AWS project but missed Monospace, which had launched four days earlier. In funnels A and C, the agent said the product didn't exist:

"No single product does all three across Postgres, your REST APIs and your SaaS systems."

"No product does this as a drop-in layer, and a gateway can't do it reliably."

Monospace only appeared when question 5 used its own wording, "governed API layer", and the agent searched for that phrase in quotes.

Terminal screenshot: the agent searches for governed API layer and finds Monospace from Directus, calling it the closest match to the requirements

Funnel B, the developer's angle, went worse in two ways:

Terminal screenshot: comparison table of MCP options, recommending Directus for introspection, a TypeScript SDK and MCP with identical permissionsTerminal screenshot: the agent searches for the exact phrase every app, person and agent and finds CData, DreamFactory and Valv instead of Monospace
  • The agent recommended Directus for Monospace's job. At question 3 it said, "Directus if you want one product that does introspection, a TS SDK and MCP with identical permissions, and you only have SQL databases."
  • Searching for the tagline didn't work either. At question 5 the agent searched for the exact phrase "every app, person and agent", got CData, DreamFactory and a young startup called Valv, and concluded, "I couldn't find a product that uses exactly "a governed API layer for every app, person and agent"."

Once found, Monospace became the agent's top pick every time. It called Monospace "the closest match to your requirements of anything I've found" in funnel A, "the best fit so far" in B, and "the best conceptual fit of everything we've looked at" in C. Each time it added the same caveat, that Monospace was days old and unproven.

POOR
Discoverability
2 / 4
Found only by searching its own tagline, and not even then in one of three tests

What Monospace can do about it​

Publish pages built around the problems agents are asked about​

Agents ran searches like MCP gateway agent identity fine-grained authorization audit log Postgres SaaS 2026 and AI agent data access control plane field-level permissions MCP new product 2026, and none of them surfaced Monospace. Guides and docs titled around those problems, in a developer's words, would give agents something to find.

Get into the comparison articles agents already read​

The recommendations agents made instead came from vendor comparison posts and round-ups, Bytebase and Cerbos blog posts, Product Hunt, and MCP directories like Glama. That's where Hasura, WunderGraph Cosmo, DreamFactory and Cerbos got their mentions.

Separate Monospace from Directus on purpose​

In funnel B the agent recommended Directus for Monospace's use case. A clear "Monospace vs Directus: which should I use?" page on both sites would teach agents when to send developers to which product.


Do agents recommend Monospace?​

Reputation tests what the agent thinks once Monospace is named, including whether it recommends it over competitors and whether it gets the facts right. We ran eight questions, each in a fresh session with web search. Hasura and WunderGraph Cosmo were among the competitors the agent named most often before it found Monospace. We added Directus on purpose, because of funnel B.

POOR
2 / 4
Liked, never recommended outright; facts often wrong
FAIL
Not recommended, or core facts wrong
POOR
Heavy caveats, facts unreliable
OK
Recommended for specific scenarios, facts mostly right
GOOD
Recommended over alternatives, facts right
QuestionVerdict
What do you think of Monospace for governed agent access?"Worth a proof of concept, but I wouldn't put it in production yet."
Monospace over Hasura?No: "use Hasura for production now, and run a small trial of Monospace alongside it"
Monospace over WunderGraph Cosmo?Yes, conditionally: "I'd lean towards Monospace for what you described"
Monospace over Directus?Yes, conditionally: "mainly because you need internal APIs as well as Postgres"
20-person startup on Postgres, Stripe and HubSpot"Not yet. It's aimed at your exact problem, but two of your three systems aren't supported today."
Regulated company needing self-hosting, SSO and a full audit trail"Yes, it's worth shortlisting, but don't approve it yet."
Main risks of adopting Monospace (name only)Couldn't identify it; answered about a font
Pricing and licensing vs Hasura and Cosmo (name only)Priced Directus instead, "fairly confident (~75%)"

The agent liked the design every time. For a regulated company, it called it "the right design for a regulated environment: agents never hold database credentials directly." But it never recommended Monospace without conditions, and most verdicts came back to how new it is.

Terminal screenshot: for a startup on Postgres, Stripe and HubSpot, the agent answers Not yet because Stripe and HubSpot connectors are coming soonTerminal screenshot: the agent recommends Hasura for production and a trial of Monospace alongside it

The answers' quality depended on which pages the agent reached. The most accurate answer, the startup "Not yet", came from Monospace's own homepage, pricing page and connectors page. It found that Stripe and HubSpot are listed as "Coming Soon", and that row/column-level security and audit logs aren't on the free plan. When the agent read less, it filled the gaps with outdated or borrowed information:

What the agent saidWhat's true
Monospace's pricing isn't on the siteIt's at monospace.io/pricing
Monospace has a GraphQL APINo GraphQL API is documented; it offers REST, an SDK and MCP
Directus's licence is "BSL"Directus moved to its own MSCL licence in 2026, and that licence is Directus's, not Monospace's
Monospace costs $499/month on a Team planThat's Directus Cloud pricing. Monospace has a free Starter plan, then custom-priced Business and Enterprise plans
"The product page never names Postgres"True. Postgres support is only listed on the connectors page and in the docs

Asked about Hasura, the agent also spotted Monospace's own mixed messaging ("Their own posts disagree on whether it's "GA" or "public preview"."). It was right, since Monospace's launch article says "Monospace is in public preview", while the Directus community announcement says it's GA.

The two questions that named Monospace without its domain went worst:

Terminal screenshot: asked about the risks of adopting Monospace, the agent cannot identify it and discusses the Monaspace coding fontTerminal screenshot: asked to compare Monospace pricing, the agent cannot find the product and assumes Directus by Monospace Inc.

Searches for "Monospace developer tool" and "Monospace launch 2026" found nothing, so the agent answered about GitHub's Monaspace coding font instead. In the pricing comparison, it never reached monospace.io, and confidently priced Directus as if it were Monospace.

Monospace vs Directus​

Directus is Monospace Inc.'s older product, and it has its own MCP server. When we asked directly whether to choose Monospace over Directus for exposing Postgres and internal APIs to apps and agents, it leaned towards Monospace, "mainly because you need internal APIs as well as Postgres". Its reasoning was that Directus is built around a single SQL database, while Monospace applies one permissions model across several sources. It described the two as "a sibling product, not an unknown vendor", and still pointed teams that only need Postgres towards Directus, for its proven field-level permissions and its admin UI.

POOR
Reputation
2 / 4
Liked, never recommended outright; facts often wrong or borrowed from Directus

What Monospace can do about it​

Put the key facts on the pages agents read first​

The homepage was the page agents read most, and it doesn't name Postgres or state a licence. Agents that stopped there guessed both. A line on the homepage naming the supported databases, the licence and where pricing lives would have fixed several wrong answers.

Settle "public preview" or "GA"​

Agents picked up both, and used "preview" as a reason not to recommend Monospace for production. Use one status everywhere.

Publish what agents told our test user to ask sales​

For the regulated company, the agent listed five questions to ask Monospace's sales team. They covered whether audit logs record the full query, whether the log is tamper-evident and can stream to a SIEM, whether SAML or OIDC work self-hosted, what licence covers self-hosting, and what compliance reports exist. Docs pages that answer those would give agents what they need to move past "don't approve it yet".


Can an agent set up Monospace and build with it?​

Integration tests whether an agent can install the product and build a "hello world" with as little human help as possible. We gave it three spreadsheets for a fictional business (50 customers, 30 products, 300 orders with 741 line items) and asked it to:

  1. Set up Monospace and give us a localhost link.
  2. Get the spreadsheet data into Monospace and connect itself to it.
  3. Answer a question using Monospace: which region had the most revenue in the last three months, and who were its top three customers?
  4. Create a restricted key for an "analyst" agent that can't see customer emails, and prove it.
  5. Mark one order as refunded through Monospace.

We ran it in Claude Code's default permission mode, approving each command, so we could stop the agent from reading anything outside its folder. Monospace has no hosted signup ("Get Started" leads to a contact form), so the agent had to self-host it with Docker.

OK
3 / 4
Working MCP integration; field-level permissions blocked on the free plan
FAIL
No working hello world
POOR
Works, but needed several human steps
OK
Works with short human steps and minor workarounds
GOOD
End to end, governance included, at most one human step

Installing: one hint, then four minutes​

The agent's first search, "Monospace self-hosted open source app github", found only fonts, so it stopped and asked which Monospace we meant.

Terminal screenshot: the agent says it could not work out which Monospace was meant, after finding only monospace fonts

We replied "It's the one at monospace.io.", and the agent then read the installation page, downloaded the official Docker Compose file, and had Monospace v1.0.0 running with Postgres, RabbitMQ and Redis in 4 minutes 12 seconds, with no errors.

Creating the admin account, accepting the licence agreement and creating a workspace took us 7 and a half minutes in the browser. There's no email verification. The last onboarding screen shows how to connect Claude Code (a claude mcp add command) and how to install Monospace's agent skills plugin. That's more agent guidance than we usually see in onboarding.

Monospace onboarding screen titled Connect to your workspace, showing a claude mcp add command and commands to install the Monospace agent skills plugin

Loading the data and connecting over MCP​

Monospace's homepage illustrates its data sources as files like customers.xlsx and inventory.xlsx, but its connectors are PostgreSQL, MySQL and MariaDB, with no spreadsheet connector. The agent worked this out from the docs and took a sensible route. It converted the spreadsheets to SQL, loaded them into a new database inside Monospace's own Postgres container, and registered that database as a data source through Monospace's API. Monospace detected the relationships between the tables on its own, and the agent checked that every table's row count matched the spreadsheets.

The agent leaned heavily on Monospace's agent-friendly docs, including llms.txt, the 1.4 MB llms-full.txt, and raw Markdown versions of each docs page. The agent said the OpenAPI spec served by the running instance "mattered most". The docs have no request examples for creating a data source, so it worked out the format from that spec, by trial and error.

It then needed one thing it couldn't do itself, an API key. It asked us to create one in the UI and write it to a file with a ! pbpaste command, so the key never appeared in the chat. Here the UI tripped us up. The prominent API Keys settings page creates service account keys, and service accounts aren't on the free plan:

Monospace API Keys settings page with a dialog saying no service accounts are available and API keys must be associated with a service accountDialog reading Not Included in Your Plan: your plan includes no service accounts, contact our sales team

The agent's instructions were right, since personal keys live under Account → Access, and they work on the free plan. With a key in place, the agent tested Monospace's MCP server by hand with curl and found 7 tools. It then wrote a project-level .mcp.json that reads the key from the file at runtime, so the key isn't stored in the config either. Claude Code needed a restart to load the new MCP server.

The hello world: a correct answer​

Terminal screenshot: the agent reports North had the most revenue in the last three months, with a table of regions and the top three customers

The answer matched the figures we calculated from the spreadsheets. North had $126,664.06 from paid and shipped orders, and its top three customers were Omar Patel, Mateo Patel and Sipho Dube. The agent stated its date window and which order statuses it counted, showed how the ranking changes if pending orders are included, and cross-checked the result in Postgres.

Monospace can't calculate totals itself (its docs have a page called "No Aggregates"), so the agent pulled the rows through MCP and added them up in a Python script. That's fine for 300 orders, but a bigger dataset would mean moving a lot of rows through the agent's context.

Field-level permissions: blocked by the free plan​

Asked for a restricted "analyst" key that can't see customer emails, the agent read the access control docs, built a policy, and tried to create it. Monospace refused:

Terminal screenshot: policy creation fails with 402 licensed hard limits, and a table shows the Starter licence allows 0 custom policies, 0 custom roles and 0 service accounts

402 "The requested operation would exceed licensed hard limits" custom_policies: usage 1, hard_limit 0

The agent then queried Monospace's licence API to confirm why. The free Starter plan allows no custom policies, no custom roles and no service accounts. It confirmed nothing had been half-created, and declined to fake the result by hiding the column in Postgres instead, saying that "isn't what you asked for".

This matches Monospace's pricing page, which lists row/column-level security, service accounts and custom roles and policies as Business-plan features. But it means the features Monospace leads with, per-agent identities and field-level rules, can't be tried on the free self-hosted version without contacting sales. The agent also noted that the licence limits weren't on any docs page it read. It only found them through the API, after being refused.

A live write: done​

Marking order 1001 as refunded worked first time, through the MCP server's update_item tool. The agent read the order back through Monospace, confirmed the change in Postgres, and recalculated the earlier revenue figures to account for it.

Terminal screenshot: before and after table showing order 1001 changed from paid to refunded

What it took​

Human stepWhy
"It's the one at monospace.io."The agent's search for Monospace found only fonts
Admin account, licence agreement, workspace (7m 27s)Expected; a person has to accept the licence
Create an API key in the UIAgents can't create their own key
Restart Claude CodeNeeded to load a newly added MCP server

The whole session took about an hour and a half, including our steps. The agent never used Monospace's agent skills plugin, SDK or CLI. It skipped the skills plugin because "it wasn't needed for this".

OK
Integration
3 / 4
Working MCP integration with correct answers; field-level permissions blocked on the free plan

What Monospace can do about it​

Let people try governance without a sales call​

Per-agent identities and field-level rules are Monospace's main selling point. A trial licence that a developer can get without contacting sales, or a small allowance of custom policies and service accounts on the free plan, would let agents demonstrate them.

Document the free plan's limits where agents look​

Put the Starter limits (0 custom policies, roles and service accounts) in the docs next to the access control and API key pages, so an agent can tell a user before it builds a policy that can't be saved.

Add request examples for the API calls agents need​

Creating a data source and writing a policy were the two places the agent had to guess. One complete example request for each would remove most of the trial and error.

Make the API keys page point to personal keys​

On the free plan, the prominent API Keys page leads to a paywall, while the working option is under Account → Access. A link from one to the other would save the confusion.


What this means for Monospace​

Monospace has done more agent-specific work than most products we audit. It has an MCP server, llms.txt and llms-full.txt, Markdown docs, an OpenAPI spec on every instance, an agent skills plugin, and an onboarding screen that tells you how to connect Claude Code. Once an agent was connected, it loaded data, answered questions correctly and made live writes, all through MCP.

The problems come before and around that:

  • Agents can't find it. It never came up from a description of the problem, only when searched by its own tagline, and the agent recommended Directus for its job in one test.
  • Agents mix it up with Directus and fonts. Without the domain in the prompt, the agent either couldn't identify it or priced Directus instead.
  • Its main features are paywalled. Field-level permissions and agent identities can't be tried on the free plan.

The first two are fixable with content, such as pages built around the problems agents get asked about, clear "Monospace from Directus" naming, and the key facts on the homepage. The third is a pricing decision, but documenting the limits would at least stop agents and developers from running into them by surprise.

Want help understanding and fixing the AX of your own technical product or platform? At Ritza our Engineering Writers work at agent speed with human-expert verification (no slop) to win at GTM.

About the author

Hash Kader
Hash KaderSoftware engineer and technical writer

Hash Kader is a software and engineer and technical writer at Ritza. He contributes hands-on testing of AI tools and developer products to TechStackups, with a focus on what they're actually like to use.