A database your agent can actually use
Dosirak embeds an MCP server that gives your agent typed tools for reading and writing records. A new agent is read-only until you say otherwise, and you decide table by table what it can reach.
What an MCP database is
Model Context Protocol (MCP) is a standard for connecting AI agents to external tools and data sources. An MCP server exposes typed operations (read a schema, query records, add a row) that an agent calls directly instead of parsing text or scraping a UI.
An MCP database is a structured data store that an agent accesses through this protocol. Instead of dumping facts into loose markdown files where keys drift, formats break, and nothing sorts, the agent works with typed fields, validated records, and relational links.
Dosirak embeds an MCP server inside the desktop application. The agent reads the same schema and works with the same records the operator sees in the forms and lists.
One kernel, two ways in
The desktop app and the MCP server run the same command layer. When you add a record in the form, it goes through the kernel. When the agent adds a record over MCP, it goes through the same kernel.
This means the agent cannot do anything the app cannot show you. Every record the agent creates appears in your lists and forms. Every field the agent updates shows in the activity log.
The transport runs locally: stdio for headless operation, or HTTP on localhost when the desktop app is running. It does not go through a cloud relay, and there are no API keys or rate limits.
What the agent can do
The MCP server exposes tools that mirror the kernel's commands.
Schema tools (read the project structure):
list_tablesreturns every table with its field definitions.get_schemareturns the full schema for one table, including field types, constraints, and layout.
Record tools (work with data):
query_recordsreads records with filters, sorting, and pagination.add_recordcreates a new record with typed field values.update_recordchanges fields on an existing record.searchruns full-text search across all tables.
Coordination tools (involve the operator):
ask_humanfiles a todo card linked to a specific record, with action buttons or a text prompt.list_todoschecks which requests are pending or resolved.
Which of these an agent can actually call depends on what you have granted it. Every tool call is logged in the activity feed either way, so you can review what the agent read, what it changed, and what it asked.
What the agent is allowed to touch
Access is a setting, not a promise. Connect an agent and it starts read-only: it can list tables and read the schema, and that is all. You open it up from there.
Grants are per table and per field. The agent that drafts your invoices can read the shoots table and write the invoices table, and never see the field where you keep a client's home address. Two agents on the same project can hold different grants.
On top of a write grant you can require approval. With the gate on, a write does not land in the database. It waits as a todo card showing the agent, the record, and the exact fields it wants to change, and you approve it or correct it in the desktop app. With the gate off, the write commits and appears in the activity log for you to read after the fact. Which tables are worth gating is your call: most people gate the ones that cost money to get wrong.
One thing Dosirak cannot do is police what the agent gets up to elsewhere. If your agent also has an email tool, sending mail is between you and that tool. Dosirak governs its own database, not the rest of your agent's toolbox.
Connecting an agent
Dosirak works with any MCP client. The dosirak-mcp binary ships with the desktop app.
Claude Desktop, add to claude_desktop_config.json:
{
"mcpServers": {
"dosirak": {
"command": "dosirak-mcp",
"args": ["--project", "/path/to/your.dosirak"]
}
}
}Claude Code, add to your project's .mcp.json:
{
"mcpServers": {
"dosirak": {
"command": "dosirak-mcp",
"args": ["--project", "/path/to/your.dosirak"]
}
}
}Any MCP client, the generic stdio invocation:
dosirak-mcp --project /path/to/your.dosirakQuestions
What is MCP?
Model Context Protocol is an open standard for connecting AI agents to external tools and data sources. It defines how an agent discovers available tools, calls them, and receives structured results. Dosirak uses MCP to let agents read and write records in the database.
Which agents work with Dosirak?
Any MCP-compatible client: Claude Desktop, Claude Code, Cursor, and local LLM setups that support the protocol. The server uses standard stdio transport.
Can the agent delete records?
The v1 MCP server does not expose a delete tool. The agent can add and update records, and file todo cards for decisions. Destructive operations are reserved for the operator in the desktop app.
Does the MCP server require an internet connection?
No. The MCP server runs locally on your machine, connecting to the same SQLite database the desktop app uses. The agent itself may need internet for its own operation, but the database connection is entirely local.
Can I use multiple agents at the same time?
Yes. The MCP server accepts concurrent connections, and all operations are transactional. Grants are held per agent, so two agents on one project do not necessarily see the same tables.
What can an agent reach by default?
The schema and nothing else. A newly connected agent is read-only until you grant it more, and grants are set per table and per field. You can also require your approval on a write, which holds it as a todo card instead of committing it.
Do my records get sent to an AI provider?
The database itself never leaves your disk, and Dosirak has no account and no sync. But a cloud agent such as Claude Desktop works by sending what it reads to its provider, so the records you grant it do travel. Granting narrowly is how you control that, and a local model keeps everything on the machine.
Do I need an agent at all?
No. Dosirak is a full database on its own. Forms, lists, records, relations, and printing all work with nothing connected. MCP is there for when you want the typing done for you, and you supply and pay for the agent yourself.