MCP Documentation
Syntaxia Anchor MCP Server
Connect AI agents to your Syntaxia Anchor workspace using the Model Context Protocol. The MCP server exposes tools, prompts, and resources that let agents read and write ontologies, model domains, and manage accounts.
Streamable HTTP
/mcp
stdio
bin/mcp-stdio
What is MCP?
The Model Context Protocol (MCP) is an open standard for connecting AI agents to external data sources and tools. Instead of calling REST endpoints directly, an MCP client (like Claude Desktop or Cursor) discovers available tools from the server and invokes them on behalf of the user.
What you get
The MCP server provides three types of capabilities to connected agents:
Tools
12
Actions agents can take -- CRUD ontologies, search, visualize
Prompts
3
Knowledge packages agents load on demand for domain expertise
Resources
2
Static reference documents agents can read at any time
Available tools
The server exposes 12 tools across five groups:
Authentication
The MCP server supports two authentication methods. HTTP clients use OAuth for automatic setup. The stdio transport uses a Bearer API token.
OAuth (HTTP clients)
For HTTP-based clients like Claude Code, Claude Desktop, Cursor, and VS Code, OAuth handles authentication automatically. Just run the one-liner command or add the server URL and the client will walk you through sign-in and consent.
OAuth discovery happens automatically. The client reads the server metadata at /.well-known/oauth-authorization-server and handles the full authorization flow.
Bearer Token (stdio clients)
For stdio-based setups where the MCP server runs as a local subprocess, use a Bearer API token passed via environment variable.
- 1. Sign in to Syntaxia Anchor and go to Settings.
- 2. Open the API Tokens tab and create a new token.
- 3. Copy the token. You will use it in the stdio configuration below.
Treat your API token like a password. Do not commit it to version control or share it publicly.
Streamable HTTP
Streamable HTTP is the recommended transport. The server accepts HTTP POST requests at /mcp and handles OAuth authentication automatically. No manual token configuration required.
Run this one-liner in your terminal. Claude Code will open a browser for OAuth sign-in automatically.
claude mcp add --transport http syntaxia https://anchor.dev.syntaxia.com/mcp
After running this command, Claude Code will discover the OAuth metadata and open your browser for sign-in. No API token needed.
Add this to your Claude Desktop configuration file. OAuth sign-in will happen automatically on first use.
{
"mcpServers": {
"syntaxia-anchor": {
"type": "streamable-http",
"url": "https://anchor.dev.syntaxia.com/mcp"
}
}
}
No Authorization header needed. Claude Desktop discovers OAuth metadata and handles sign-in automatically.
Add this to your Cursor MCP settings. OAuth sign-in will happen automatically on first use.
{
"mcpServers": {
"syntaxia-anchor": {
"type": "streamable-http",
"url": "https://anchor.dev.syntaxia.com/mcp"
}
}
}
No API token needed. Cursor discovers OAuth metadata and handles sign-in after you save the configuration and restart.
Add this to your VS Code MCP settings. OAuth sign-in will happen automatically on first use.
{
"mcpServers": {
"syntaxia-anchor": {
"type": "streamable-http",
"url": "https://anchor.dev.syntaxia.com/mcp"
}
}
}
No API token needed. VS Code discovers OAuth metadata and handles sign-in automatically.
stdio
The stdio transport runs the MCP server as a local subprocess. The client communicates over standard input/output. This is the transport used by CLI-based MCP clients.
Add this to your Claude Code MCP configuration.
{
"mcpServers": {
"syntaxia-anchor": {
"type": "stdio",
"command": "bin/mcp-stdio",
"env": {
"SYNTAXIA_API_TOKEN": "YOUR_API_TOKEN",
"SYNTAXIA_BASE_URL": "https://anchor.dev.syntaxia.com"
}
}
}
}
The bin/mcp-stdio script must be executable. Run chmod +x bin/mcp-stdio if needed.
Tool Reference
Complete reference for all 12 tools exposed by the MCP server. Each tool includes its parameters, types, and whether they are required.
User & Account
read_profile
Returns the authenticated user’s profile information.
This tool takes no parameters.
{
"name": "Ada Lovelace",
"email": "ada@example.com",
"time_zone": "Eastern Time (US & Canada)",
"created_at": "2025-01-15T10:00:00Z"
}
list_accounts
Lists accounts the authenticated user belongs to with their roles.
This tool takes no parameters.
[
{
"id": "01933abc-0001-7000-a000-000000000001",
"name": "Main Workspace",
"personal": false,
"roles": ["admin"]
}
]
Ontology Read
list_ontologies
Lists ontologies visible to the authenticated user with pagination.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit |
integer | no | Number of results to return (1-100, default 20) |
offset |
integer | no | Number of results to skip (default 0) |
search_ontologies
Searches ontologies by title or description.
| Parameter | Type | Required | Description |
|---|---|---|---|
query |
string | yes | Search term to match against title or description |
limit |
integer | no | Number of results to return (1-100, default 20) |
offset |
integer | no | Number of results to skip (default 0) |
read_ontology
Returns full details of a specific ontology including its source.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The ontology ID |
Ontology Write
create_ontology
Creates a new ontology in the specified account with an initial commit.
| Parameter | Type | Required | Description |
|---|---|---|---|
account_id |
string | yes | The account ID to create the ontology in |
title |
string | yes | The ontology title |
source |
string | yes | The ontology source content |
source_format |
string | yes | The source format (yaml, owl, rdf, turtle, other, orm) |
description |
string | no | Optional description |
visibility |
string | no | is_public (default) or is_private |
version |
string | no | Semantic version (default 1.0.0) |
commit_message |
string | no | Commit message (default ‘Initial commit’) |
update_ontology
Updates an ontology’s source and/or metadata, creating a new commit.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The ontology ID |
account_id |
string | yes | The account ID the ontology belongs to |
source |
string | yes | The updated source content |
commit_message |
string | yes | Commit message describing the change |
source_format |
string | no | Source format (keeps current if omitted) |
version |
string | no | Semantic version (auto-bumps patch if omitted) |
title |
string | no | Updated title |
description |
string | no | Updated description |
visibility |
string | no | Updated visibility: is_public or is_private |
delete_ontology
Deletes an ontology and all its commits.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The ontology ID |
account_id |
string | yes | The account ID the ontology belongs to |
This action cannot be undone. All commits associated with this ontology will also be deleted.
Commits
list_commits
Lists commits for a specific ontology with pagination.
| Parameter | Type | Required | Description |
|---|---|---|---|
ontology_id |
string | yes | The ontology ID |
limit |
integer | no | Number of results to return (1-100, default 20) |
offset |
integer | no | Number of results to skip (default 0) |
read_commit
Returns full details of a specific commit including its source.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The commit ID |
Visualization & ORM
visualize_ontology
Renders an ORM ontology as a PNG diagram using headless Chrome. Returns the image for the agent to inspect.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The ontology ID (must be ORM format) |
guide_orm_creation
Returns ORM methodology guidance and an XML template for creating ORM ontologies from natural language domain descriptions.
| Parameter | Type | Required | Description |
|---|---|---|---|
domain_description |
string | yes | A natural-language description of the domain to model |
Prompts
Prompts are knowledge packages your agent can load on demand. Unlike tools (which perform actions), prompts teach the agent how to think about a domain. They are not called automatically -- you or your agent must explicitly request them.
How to use prompts
How you access prompts depends on your MCP client:
domain_model
Reference guide for Anchor's ontology data model -- formats, versioning, commits, ownership, visibility, and validation rules.
This tool takes no parameters.
When to use
The agent needs to understand how Anchor's entities relate to each other before making create or update calls.
Covers
- - Source formats (YAML, OWL, RDF, Turtle, ORM) and their validation rules
- - Semver versioning and automatic version bumping
- - Commit model -- how changes are tracked with immutable snapshots
- - Account ownership and visibility (public vs private)
- - Parent/child ontology nesting
tool_patterns
Complete reference for all 12 tools -- parameters, return shapes, sequencing rules, and error recovery patterns.
This tool takes no parameters.
When to use
The agent is chaining multiple tool calls and needs to know the correct order of operations, or it hit an error and needs to recover.
Covers
- - Parameters and return shapes for every tool
- - Sequencing rules (e.g., always call list_accounts before create_ontology)
- - Error recovery patterns for common failures
- - Tool grouping and recommended workflows
orm_workflow
ORM (Object-Role Modeling) methodology expertise. Turns a general-purpose agent into a domain modeling expert that can produce valid ORM2 XML.
| Parameter | Type | Required | Description |
|---|---|---|---|
domain_description |
string | yes | A natural-language description of the domain to model (e.g. 'A university where students enroll in courses taught by professors') |
When to use
You ask the agent to model a domain as an ORM ontology from a natural language description.
Covers
- - Core ORM concepts -- entity types, value types, fact types, readings
- - Constraint modeling -- uniqueness, mandatory, subset, exclusion, frequency, ring
- - Subtypes and specialization
- - Step-by-step modeling workflow from domain analysis to ORM2 XML
- - ORM2 XML template with namespace and ID conventions
- - Validation checklist for correctness, completeness, and XML validity
Example
"A veterinary clinic where vets treat animals owned by clients, with appointments and medical records"
Resources
Resources are static reference documents the agent can read at any time via their URI. They provide the same knowledge as prompts but through a different MCP mechanism.
syntaxia://domain-model
Reference guide for Anchor's ontology domain model, including source formats, versioning, commits, ownership, and validation rules.
Same content as the domain_model prompt. Available for agents to read at any time without an explicit prompt request.
syntaxia://tool-guide
Complete reference for all MCP tools, their parameters, sequencing rules, and error recovery patterns.
Same content as the tool_patterns prompt. Available for agents to read at any time without an explicit prompt request.
Resources vs prompts
Resources and prompts overlap intentionally. They expose the same knowledge through two different MCP mechanisms. Prompts are explicitly requested and can accept arguments. Resources are always available for the agent to read on its own. Which one gets used depends on what your MCP client supports.