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.

Jaina Team

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_records with project_slug and schema_slug parameters
  • jaina_get_record with project_slug, schema_slug, and record_id
  • jaina_create_record with a typed data payload matching your schema
  • jaina_update_record with the same
  • jaina_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_record three times with project_slug: "my-game", schema_slug: "enemy", and a structured data payload each time]

Claude: I created three records. The wraith doesn't have a tags field 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.