Skip to content
Agentmart
Submit a tool

KIAgent

Your mail, chats and documents indexed into a local SQLite corpus, served to AI clients.

Connector by localkiagent.com · Domain verified by the MCP Registry

IndexedMITRemote (HTTP)★ 7
Write a review

Install

Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install connector/localkiagent-com-kiagent

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Remote endpoint

  • https://{subdomain}.localkiagent.com/mcp Remote (HTTP)

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Your mail, chats and documents indexed into a local SQLite corpus, served to AI clients over MCP.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
9 read · 6 write · 0 delete · 1 not yet classified
Secrets
None asked for
Install scripts
Nothing to install (hosted)
Runs as
Hosted (remote endpoint)

Tools by what they do 16

Read from the source code; the running server may list different tools.

Read 9 · Look things up without changing anything.

  • count
  • digital_memory_info
  • find_free_time
  • get
  • get_related
  • get_schema
  • list_calendars
  • list_outbox
  • search

Write 6 · Create, change, send or run things.

  • draft_event
  • draft_message
  • draft_reply
  • revise_draft
  • schedule_drafts
  • send_draft

Not yet classified 1 · We could not tell from the name and description.

  • query_sql

Network hosts it talks to 18

  • ::1 · found in code
  • accounts.google.com · found in code
  • api.github.com · found in code
  • electron-react-boilerplate.js.org · found in code
  • fonts.googleapis.com · found in code
  • fonts.gstatic.com · found in code
  • github.com · found in code
  • glama.ai · found in code
  • gmail.googleapis.com · found in code
  • googleapis.com · found in code
  • huggingface.co · found in code
  • localkiagent.com · found in code
  • login.microsoftonline.com · found in code
  • mail.google.com · found in code
  • oauth2.googleapis.com · found in code
  • purl.oclc.org · found in code
  • raw.githubusercontent.com · found in code
  • schemas.openxmlformats.org · found in code

Files it touches

  • /usr/sbin/taskpolicy
  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (16)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • count

    Aggregate document counts, optionally filtered by `source`/`type`/`from_date`/`to_date`. `group_by`: 'source' (per connected source), 'from' (per sender, email-ish docs), 'label' (per gmail label). "How many mails per sender this week" = `{group_by:'from', from_date:...}`. For anything else use `query_sql` (see `get_schema`).

  • digital_memory_info

    Information about the digital memory: connected accounts, document counts (exact by source; best-effort by type/language from a recent sample), and an approximate date range. Call this first to know what sources/accounts exist before calling `search`.

  • draft_event

    Draft a calendar event for the user to add. NOTHING IS ADDED by this tool: the user confirms it in KIAgent (Outbox) or on the returned link; follow the returned instruction. Capturing events from correspondence (mail, chats, messages — default window: the last 7 days): look for commitments the user or a child is expected to attend or do at a specific date/time. Skip marketing, newsletters, things with no personal relevance, and anything that already arrived as a calendar invite. Group mentions of the same occurrence and call draft_event ONCE per occurrence with the most specific source_documen…

  • draft_message

    Create a DRAFT email to explicit recipients from one of the user's email accounts (account ids come from digital_memory_info). NOTHING IS SENT by this tool: the result includes an instruction and a confirmation link for the user; follow the instruction exactly.

  • draft_reply

    Create a DRAFT reply to an email or chat document from the corpus (use the document id from search/get results; for a chat, the day document of the conversation). The app resolves the recipient and threading from the stored document — do not supply addresses. NOTHING IS SENT by this tool: the result includes an instruction and a confirmation link for the user; follow the instruction exactly.

  • find_free_time

    Find free time slots in the user's calendars for a meeting or appointment. Looks at every calendar Kia syncs plus events Kia drafted but the user hasn't added yet. Slots are 30-minute aligned, free ones first, then "maybe" ones with the conflicts that make them uncertain (tentative or unanswered invites, all-day entries, pending drafts). Defaults: working hours from the user's settings, else 09:00–18:00 Mon–Fri, in the user's time zone. Family plans often need evenings or weekends — pass between (e.g. "17:00-21:00") and days (1=Mon … 7=Sun) for those. If complete is false, Kia cannot see every…

  • get

    Fetch a document by id; returns full markdown body, `source_url`, and metadata. Use after `search` when snippets aren't enough. `source_url` is a deep link back to the original (a `file://` absolute path for local files, the app's web link for cloud sources; null when the source has none). Every document has a url — when presenting documents to the user, link each one, not just the first; if url is empty or non-http, cite by title and date. Batch mode: pass `ids` (array of document ids) to fetch several documents in one round-trip. Returns an array in the same order, with `null` for ids that d…

  • get_related

    Return summaries of records related to a given document id, paged with `limit`/`offset`. Relations: children — child documents of a document (an email thread's individual messages, a document's attachments) parent — the single parent document, if any (a 0-or-1 array) `children` is ordered oldest-first and returns at most `limit` rows — if you receive exactly `limit` rows, fetch the next page with `offset`. Returns one summary per row: id, source, type, title, source_url, parent_id, created_at, snippet (markdown truncated to 280 chars, or null) — no `markdown` body. Use `get` for full bod…

  • get_schema

    Annotated schema of the digital-memory database — tables, columns, enum values, relations, and prep notes. Call this before `query_sql` when search/count/get_related aren't expressive enough and you need custom SQL. Key relation: a document's source is `accounts.source`, joined via `documents.account_id = accounts.id`. For live counts/sync state use `digital_memory_info` instead — this tool is layout, not contents. Every document has a url — when presenting documents to the user, link each one, not just the first; if url is empty or non-http, cite by title and date. Returns markdown.

  • list_calendars

    List the user's calendars across their connected calendar accounts (Google Calendar, Outlook): calendar_id, name, account, whether Kia syncs it (indexed), whether Kia can add events to it (can_write), and which one is the default. Call it before draft_event when you are unsure which calendar fits — a shared family calendar, a work calendar — and pass that calendar_id. A note explains why a calendar can't be written (for example: reconnect the account).

  • list_outbox

    List recent outbound drafts and their statuses (draft/sending/sent/failed/discarded/delivery_unknown/expired). Pending drafts include a fresh confirmation link — use this when a confirm link has expired.

  • query_sql

    Run a read-only SELECT or WITH query against the digital-memory database. Capped at 500 rows — add your own LIMIT/ORDER BY when order matters. Use when search/count/get_related aren't expressive enough: joins, custom aggregations, time bucketing, grouping. Call `get_schema` FIRST for table/column names and how the tables relate — notably a document's source lives on `accounts.source`, reached by joining `documents.account_id = accounts.id` (there is no source column on documents). Canonical starting point: `SELECT d.id, d.title, d.created_at, d.url, a.source FROM documents d JOIN accounts a ON…

  • revise_draft

    Change a pending DRAFT in place (a draft_id from draft_reply, draft_message or list_outbox): pass its draft_id and the revision you last saw, plus only the fields to change. NOTHING IS SENT. Use this for every change the user asks for — never create another draft. If the draft changed meanwhile (the user edited it), this refuses and returns the current draft: show it and revise from that. A reply keeps the recipients of the original message. The body is Markdown, sent as a formatted email.

  • schedule_drafts

    Schedule when pending drafts are sent — one or many, e.g. several emails to different people spread over 2 hours. Give each draft its draft_id and the revision the user saw, and EITHER a send_at for every draft (ISO 8601 with a UTC offset; null cancels) OR spread {minutes, start?} and Kia picks distinct random times inside that window. In chat confirmation mode this schedules them: call it ONLY after the user agreed in this conversation to the recipients, the texts and the times (or the spread). In the other modes nothing is scheduled: each time is a suggestion the user confirms per draft in K…

  • search

    Search everything ingested so far — emails, chat messages, files, notes, attachments — across all connected accounts. START by calling `digital_memory_info` to see which sources/accounts/types exist. Query syntax: bare terms are ANDed ("a b" = both must match); "quoted phrases" match exactly; `-term` or NOT excludes; UPPERCASE OR alternates (lowercase and/or/not are ordinary terms); `term*` prefix-matches; parentheses group. Terms are stemmed ("invoice" matches "invoices"). Example: `("term sheet" OR investor*) -newsletter`. Prefer OR-of-synonyms over long AND chains — every bare term narrows…

Show 1 more tools
  • send_draft

    Send a pending outbound draft after the user has explicitly agreed in this conversation. Only works when chat confirmation mode is enabled in the app settings; otherwise present the confirm link from the draft result instead. The draft must have been shown to the user verbatim first, at the revision you pass.

Signals

Stars
7
Forks
0
Open issues
80
Last commit
Oct 23, 2026 (6 days ago)
Last release
Oct 21, 2026 (7 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
com.localkiagent/kiagent
Version
0.53.0
Auth
Auth not stated
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

KIAgent MCP server. Agent Mart. https://agentmart.dev/connectors/localkiagent-com-kiagent (last updated 2026-10-24)