mcp
MCP for developers: what Claude sees when it reads your schema
A walkthrough of how Jaina turns schemas into MCP tools, and how Claude actually uses them.
MCP in one paragraph
The Model Context Protocol is a tool-call protocol between an AI client (Claude Desktop, Claude Code, etc.) and an MCP server. The server exposes a list of tools with typed parameters. The client decides when to call them. Tools can read data, write data, or trigger actions. JSON Schema describes the parameters; the model handles natural language; the server handles the actual work.
What Jaina generates
When you define a schema like this:
{
"name": "Enemy",
"slug": "enemy",
"fields": [
{ "name": "Name", "slug": "name", "type": "text" },
{ "name": "HP", "slug": "hp", "type": "number" },
{ "name": "Attack", "slug": "attack", "type": "number" },
{ "name": "Sprite", "slug": "sprite", "type": "file", "config": { "accept": "image/*" } }
]
}
Jaina's MCP server exposes (among others):
jaina_list_recordswithproject_slugandschema_slugparametersjaina_get_recordwithproject_slug,schema_slug, andrecord_idjaina_create_recordwith a typeddatapayload matching your schemajaina_update_recordwith the samejaina_delete_record
The data parameter's schema is derived from your field definitions, so Claude knows that hp is a number and sprite is a file URL.
Configuring Claude
In Claude Desktop, add to your MCP config:
{
"mcpServers": {
"jaina": {
"url": "https://jaina.dev/api/mcp",
"auth": { "type": "bearer", "token": "jn_live_..." }
}
}
}
In Claude Code, the same idea via ~/.claude/settings.json.
What it looks like in conversation
You: Make me three new enemies for my-game: a goblin (HP 20), an ogre (HP 80), and a wraith (HP 40, with a 'spectral' tag).
Claude: [calls
jaina_create_recordthree times withproject_slug: "my-game",schema_slug: "enemy", and a structureddatapayload each time]Claude: I created three records. The wraith doesn't have a
tagsfield on your enemy schema yet — want me to add one?
That second turn is the part that makes this worth the effort. Claude knows the schema. It can notice when you ask for something the schema doesn't accommodate and offer to extend the schema rather than mangle the data.
What you give up
Not much, in practice. The same auth model applies — Claude needs an API token scoped to your user, and Row Level Security at the database level enforces that it can only see your projects.
Try it
Sign up, define a schema, paste your API token into Claude's MCP config, and start a conversation. It's roughly five minutes from zero to a working integration.
