Let Claude, ChatGPT or another MCP client search, read and propose edits to the notes in your synced Solomon vaults, with every change waiting for your review by default.
Solomon is a notes app for Mac, iPhone, iPad and the web. Your notes are Markdown files in vaults, and vaults you sync are stored by the Solomon sync service. The Solomon connector is a hosted MCP server that lets an AI assistant work with the notes in your synced vaults: list and read them, search them, query them by their properties, and create or edit notes when you allow it.
By default, nothing an assistant writes changes your notes directly. Each write becomes a proposal that waits for you to accept or reject it in Solomon. See Propose or apply immediately.
Server URL: https://app.lomon.dev/api/mcp (MCP Streamable HTTP).
https://app.lomon.dev/api/mcp.The connector uses OAuth 2.1 with PKCE. The assistant never sees your Solomon password; it receives a credential limited to what you granted, which you can revoke at any time.
Mint an agent key at app.lomon.dev/keys, choosing a vault (or your whole account) and a mode: “Stage for review (propose)” or “Apply immediately (force)”. Send it as an Authorization: Bearer header to https://app.lomon.dev/api/mcp. The key is shown once; store it like a password.
Start by asking the assistant to call health, which reports the access the connection has, and vaults, which lists the vaults it can reach.
Every connection has one of two write modes, chosen when you grant it. When you connect from an assistant's sign-in screen you can also choose read only: the assistant can list, read, search and query your notes, and every write tool is refused.
Some tools only make sense applied directly, so a propose connection is refused when it calls them (code propose_unsupported): base_write, note_edit_section, note_move, note_delete, proposal_accept, proposal_reject.
Under either mode, deleting a note requires the assistant to pass confirm: true, and a deleted note can be recovered because its history is kept. Moving a note keeps its id and history.
Each tool declares MCP annotations: a title, and whether it is read-only, whether it can replace or remove existing content, and whether it reaches anything outside your vaults (none do). Assistants use these to decide when to ask you before running a tool.
| Tool | What it does |
|---|---|
healthCheck Connection Status | Says what this connection may do: its write mode (propose or force) and which vaults it is bound to. Read |
vaultsList Vaults | Lists the vaults the connection can reach. Pass a row's id or name as vault to any other tool.Read |
notes_listList Notes | Lists the notes (or .base view files) in a vault, newest first.Read |
note_readRead Note | Reads one note's frontmatter and body by its vault-relative path. Read |
searchSearch Notes | Text or regular-expression search over titles and bodies, optionally limited to a folder or a property filter. Read |
base_queryQuery Notes with Bases | Filters, sorts, groups and totals notes by their properties with the base query language (reference below). Read |
proposals_listList Pending Proposals | Lists the changes waiting for a person to accept or reject. Read |
| Tool | What it does |
|---|---|
note_createCreate Note | Creates a new note. Never overwrites an existing file. Write (additive) |
base_writeWrite Base View File | Creates a .base view file, or replaces one when overwrite is true.Write (can replace or remove) · apply-immediately access only |
note_writeOverwrite Note | Replaces a note's body and/or sets or removes frontmatter keys. Write (can replace or remove) |
note_appendAppend to Note | Adds text to the end of a note's body. Write (additive) |
note_edit_sectionEdit Note Section | Edits one part of a note in place, addressed by a heading or a unique piece of text. Write (can replace or remove) · apply-immediately access only |
note_set_propertiesSet Note Properties | Sets or removes frontmatter properties, including tags. Write (can replace or remove) |
note_moveMove or Rename Note | Moves or renames a note, keeping its id and history. Write (can replace or remove) · apply-immediately access only |
note_deleteDelete Note | Removes a note from every device. Recoverable: its history is kept. Requires confirm: true.Write (can replace or remove) · apply-immediately access only |
proposal_acceptAccept Proposal | Applies one waiting change. Refused if the note changed since the change was proposed. Write (can replace or remove) · apply-immediately access only |
proposal_rejectReject Proposal | Discards one waiting change and returns its content in the result. Write (can replace or remove) · apply-immediately access only |
The Solomon desktop app and the local daemon also serve design-document and cloud-pull tools. They cannot run on the hosted server, so it does not list them. An assistant that calls one anyway gets a coded refusal (unsupported_on_host), not “unknown tool”.
base_query (and search's where argument) use Solomon's base query language. A query is a few lines, one directive per line:
from notes
where status is "active"
where __folder under "Projects"
sort __modified desc
columns title, status, owner
limit 20where <field> <op> [value]: operators are is, is not, contains, not contains, gt, gte, lt, lte, under (a folder and its subfolders), exists and missing. Several where lines must all match; or inside one line matches either side. Quote values that contain spaces.__title, __path, __folder, __modified, and the computed __words, __size, __tasks_open, __backlinks and __broken_links.sort <field> [asc|desc], columns a, b, c (up to six), group by <field>, aggregate count(), sum(<field>), view table|list|cards|kanban|graph|stats|chart|outline, and limit <n>. Without sort, rows are newest first.error with the line number, not as a failed call.To run a view you saved in a .base file, pass its path as base (and optionally a view name) instead of a query.
access: private, anything under a _private/ folder, dot-folders, and the top-level Widgets/ folder are never listed, read, searched or written through the connector.truncated: true. Narrow it with a folder (path) or a where filter.Open app.lomon.dev/keys to see every connection and agent key on your account. Revoke ends one; Revoke all ends every one for a vault or for your account. A revoked credential is refused on its next call.
Removing the connector inside your assistant stops that assistant from using it, but revoking it in Solomon is what makes the credential stop working everywhere.
Proposals an assistant already made stay in your review queue until you accept or reject them.
proposals_list, or open the proposals view in Solomon.Every refusal carries a code. The common ones:
| Code | What it means |
|---|---|
vault_required | The connection can reach more than one vault and the call did not say which. Ask the assistant to call vaults and pass the vault's id or name. |
vault_mismatch | The call named a vault this connection is not bound to. |
vault_ambiguous | More than one of your vaults has that name. Pass the vault's id instead. |
propose_unsupported | The tool applies changes directly and this connection has propose access. Use a proposing tool (for example note_write instead of note_edit_section), or reconnect with apply-immediately access. |
proposal_stale | The note changed after the proposal was made, so accepting it would overwrite text it never saw. Ask the assistant to propose the change again. |
exists | A file is already at that path. Creating never overwrites; choose another path or edit the existing note. |
html_frozen | The path is an HTML design document, which only the Solomon desktop app can read and edit. |
base_frozen | The path is a .base view file. Note tools never touch one; use base_write. |
bad_argument | An argument is missing or malformed. The error message names the argument and what was expected. |
unsupported_on_host | The tool exists in the Solomon desktop app or local daemon but cannot run on this server. |
mcp_quota | The account has used its plan's hosted-MCP allowance for the month. See the pricing page for limits. |
The connector reads and writes only the vaults you granted, and only on the assistant's calls. It does not read your conversations with the assistant, and it receives only the arguments of each tool call. What an assistant does with the notes it reads is governed by that assistant's own terms and privacy policy.
See the Privacy Policy for what Solomon collects and who processes it, and the Terms of Service.
Questions, problems and security reports: david@pnthn.ai. More on the support page.