AI-Powered Backend as a Service (BaaS) with Firebird 5.0
SkematIA is a Backend as a Service that lets you design, build, and query databases using natural language and AI. It runs on Firebird 5.0 and exposes your data through two interfaces: a Model Context Protocol (MCP) server for AI agents, and a REST API for any HTTP client.
You don't need database drivers, SQL knowledge, or direct Firebird access. Describe your data in plain language, and SkematIA creates the schema, tables, relationships, and constraints automatically. Then query your data conversationally or with raw SQL.
Describe your business in natural language. SkematIA generates a complete Firebird 5.0 schema with tables, fields, PKs, FKs, indexes, and generators.
Ask questions about your data in plain language. The AI converts them to Firebird SQL and returns results instantly.
Connect from Claude, GPT, custom agents via MCP, or from any HTTP client via REST. Same API key, same data.
Granular permissions per API key (read_only, read_write, full). Audit trail on every operation. Rate limiting per plan.
1. Sign up at skematia.com and create a project.
2. Copy your API key (starts with sk_).
3. Choose your connection method: MCP for AI agents, or REST for any HTTP client.
4. Set header: Authorization: Bearer sk_your_api_key
5. Start with list_tables or get_schema to explore your database.
SkematIA exposes a Streamable HTTP MCP server. It's stateless: each request is independent, no session management needed.
https://skematia.com/mcp/mcp
Add to your claude_desktop_config.json:
{
"mcpServers": {
"skematia": {
"command": "npx",
"args": [
"mcp-remote",
"https://skematia.com/mcp/mcp",
"--header",
"Authorization: Bearer sk_YOUR_API_KEY"
]
}
}
}
claude mcp add skematia --transport http https://skematia.com/mcp/mcp
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession
async with streamablehttp_client(
url="https://skematia.com/mcp/mcp",
headers={"Authorization": "Bearer sk_YOUR_API_KEY"},
) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
result = await session.call_tool("query", {
"project_id": "your-project-id",
"question": "how many tables exist?",
})
curl -X POST https://skematia.com/mcp/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}'
All REST endpoints require the /api/ prefix. Without it, requests hit the frontend and return 405. No trailing slashes.
SQL dialect is Firebird 5.0: column aliases require AS, table names are UPPERCASE, use ROWS N instead of LIMIT N.
| Method | Endpoint | Description |
|---|---|---|
GET GET | /api/explorer/{id}/schema | Full database schema (tables, fields, PKs, FKs, generators) |
GET GET | /api/explorer/{id}/tables | List all tables |
GET GET | /api/explorer/{id}/tables/{table}/structure | Table structure (columns, PKs, FKs, indexes) |
GET GET | /api/explorer/{id}/tables/{table}/data | Paginated table data |
GET GET | /api/explorer/{id}/schema/suggestions | Schema improvement suggestions |
GET GET | /api/explorer/{id}/schema/history | DDL version history |
GET GET | /api/explorer/{id}/schema/version | Current schema version summary |
| Method | Endpoint | Description |
|---|---|---|
POST POST | /api/data/{id}/raw-sql | Execute raw SQL {"sql": "SELECT ..."} |
GET GET | /api/data/{id}/{table} | List rows from a table |
POST POST | /api/data/{id}/{table} | Insert record |
PUT PUT | /api/data/{id}/{table}/{pk} | Update record by PK |
DELETE DEL | /api/data/{id}/{table}/{pk} | Delete record by PK |
| Method | Endpoint | Description |
|---|---|---|
POST POST | /api/ai/start | Start AI design session |
POST POST | /api/ai/chat | Chat with AI for schema design |
POST POST | /api/ai/execute-schema | Execute AI-generated schema |
| Method | Endpoint | Description |
|---|---|---|
GET GET | /api/projects | List user projects |
POST POST | /api/projects | Create new project |
POST POST | /api/api-keys | Create API key |
GET GET | /api/api-keys | List API keys |
curl -H "Authorization: Bearer sk_YOUR_API_KEY" \
https://skematia.com/api/explorer/{project_id}/schema
import httpx
r = httpx.get(
"https://skematia.com/api/explorer/{project_id}/schema",
headers={"Authorization": "Bearer sk_YOUR_API_KEY"}
)
schema = r.json()
| Tool | Description | Permission |
|---|---|---|
list_tables | List all tables with field counts | read_only |
get_schema | Full schema: tables, fields, PKs, FKs, relationships | read_only |
execute_sql | Execute raw SQL (permission depends on statement type) | varies |
query | Natural language to Firebird SQL | read_only |
insert_data | Insert one or more records | read_write |
update_data | Update record by primary key | read_write |
delete_data | Delete record by primary key | read_write |
bulk_update | Update multiple records by WHERE condition | read_write |
design_schema | AI schema design from natural language | full |
modify_schema | AI schema modification from instructions | full |
schema_suggestions | Analyze schema, return improvement suggestions with SQL fix | read_only |
schema_history | DDL change history with versions and timestamps | read_only |
list_projects | List accessible projects | read_only |
create_project | Create new project with Firebird database | full |
list_backups | List available backups (scheduled, manual, pre-restore) | read_only |
SkematIA implements a Zero-Trust security model with three pillars:
Each API key has a permission level that controls allowed operations:
| Level | Allowed |
|---|---|
read_only | SELECT queries only |
read_write | SELECT + INSERT, UPDATE, DELETE |
full | All operations including DDL (CREATE, ALTER, DROP) |
Every operation is logged with user, project, action, SQL statement, duration, and result. The audit log is immutable and stored in a central database.
Sliding window rate limiting per API key. Response headers include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.
| Plan | Limit |
|---|---|
| Free / Beta | 30 requests/minute |
| Pro | 100 requests/minute |
| Business | 1,000 requests/minute |
SkematIA Dashboard - Sign up, create projects, manage API keys.
Skematia Protocol v1.0 - Open specification for AI agents and IDEs to interact with databases. Apache 2.0 licensed.
Agent Card (A2A) - Machine-readable service descriptor for AI agents.
MCP Connection Guide - Step-by-step connection instructions.
Contact: soporte@skematia.com