linklore
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| doc_flowC | [read-only] doc_flow(id) — renders a doc's flowLink chain in order (journey view). |
| doc_mapC | [read-only] doc_map(oneline) — overview of the full doc link network. |
| briefB | [read-only] project dashboard — call at the start of every session. external source 🔔 = a new push has arrived. receive it with import(openbox=). options: dismiss(turn off a nudge), undismiss(restore it), help. |
| initB | init(blueprint='') — set up .linklore in this directory (starts local footprint memory).
project_dir: set up .linklore in another folder (creating a boundary is init-only). setting up there doesn't change this session's base project — to keep working there, config(action='pin'). |
| configC | Project settings (openbox source options) + identity + session pin. Sharing lives in separate tools: send/import (openbox) - member (members/subscriptions). actions: sources/option/sync/forget/whoami/version/pin/unpin/sessions/projects/delete_project. help=true for details. |
| statusA | status() — detects code↔doc sync drift (git-diff based). Not for reading lore/doc content → use show()/brief(). since, action(''|'ack'|'reset'), ack, reset, help. (2026-07-09: the dead params auto=/sync= and ack_all= were removed — ack='all' does the same job, matching the reset='all' convention) |
| linkA | link(a, b, action=) — connect two items (dc↔dc / lr↔lr / dc↔lr auto-detected, prefix matching OK). a/b may also be a file path or an existing title — non-id-shaped values are auto-classified (same as links= in add/edit). Undo (inverse) = unlink(a, b) — same arguments. action has 3 modes (extends the member/config(action=) convention):
|
| unlinkB | unlink(a, b, action=) — disconnect two items. Symmetric with link() (action='' default|'flow', also accepts file paths the same way). |
| doc_rollupB | [read-only] doc_rollup(id) — collects lore linked to a doc into an AI-summary draft. |
| cleanupC | [read-only] cleanup(type='lore'|'doc') threshold(=0.85), status(=open), help - duplicate candidates. |
| doctorA | doctor() - checks project data integrity (oldId/newId, files[] paths, link targets). doctor() read-only diagnostics (default) doctor(action='fix') automatically repairs any issues found |
| showB | [read-only] show() — target/scope: query·type·openbox / filters: tag·level·status·file·period('Nh' hours|'Nd' days|'YYYY-MM-DD' UTC)·source_id / result shape: sort·max·oneline·superseded / mode: action / plumbing: help |
| logD | [read-only] log() id, period('Nh' hours|'Nd' days|'YYYY-MM-DD' UTC), sort=oldest, max, plumbing: help |
| localA | local(action, id, to='workspace-path', from_dir='') — directly operate on another LinkLore project on the same disk (works on both lore and doc). action='move' move to another workspace (source deleted; createdAt/files/tags/level/status/body/items preserved) action='copy' copy to another workspace (source kept, same id retained — rejected if the target already has it) action='show' view another workspace's content (read-only, from_dir required — query/tag/type/status passed through) ⚠️ For 2+ items, the default is preview only — use confirm=True to execute (a single item runs immediately). cf. sharing across a server/team is the openbox (send/import) — local() never talks to a backend, it only works within your own disk. ⚠️ only between projects you own — if the target is genuinely someone else's/another team's, don't use local() just because you have filesystem access; go through send() (the recipient must import() — a review gate). |
| memberA | member(action) — openbox (shared space) members and permissions. An openbox is a project's shared space (invite-only, not 'public').
|
| pushA | push(id) — upload the home base to my server (visible to me only). Like git push: local → server. Not for sharing — to share with others use send (push has no target argument by design, so it cannot share).
|
| pullA | pull(id) — restore the home base from my server (works across devices too). Like git pull: server → local. To bring things from an openbox use import — pull is for my server only. If local is newer/same it's skipped; a real conflict (both sides changed) is shown separately (local kept).
|
| sendA | send(id, openbox) — share a footprint to an openbox (visible to others). Both id and openbox are required.
|
| importA | import(id, openbox) — bring an openbox's footprints into the home base (the receiver picks what).
|
| reportB | report(msg) — send feedback/a bug straight to the team. Works whether or not you're logged in (if logged in, your identity is attached automatically — never forced). |
| addB | add(type='lore'|'doc', title, msg=) — lore=journal entry/decision, doc=spec/plan. 2 linking args: links=unified (code files·dc/lr id·title auto-classified, flow=True for a doc chain) · push_to=send to a box (not a link). items=['a','b']→checklist(0/N, doc only) · items=[{...}]→batch creation(both lore·doc — use this for bulk, quieter nudges than N single calls). level 1~4(lore): 1=note 2=verified 3=pinned(shown in brief) 4=global(all projects). details help=True |
| editA | edit(id, action=, ...) — 4 write modes (action). If action is omitted, defaults to append (msg alone works too). Write modes (action, tool option = behavior match):
(action= is one of append|section|overwrite|supersede. Unspecified('') means append.) Other:
|
| rmA | rm — unified delete. Target is chosen by argument (action= is an explicit alternative, auto-detected by which argument is present when omitted). Deleting items (lore/doc) — id is a single value or a list (batch)
Taking down something you sent (reverse of push/send, doesn't touch the source of truth)
Removing a member (openbox owner only)
Deleting an entire openbox (shared space) (owner, unrecoverable → always asks to confirm)
|
| restoreB | restore(id) — recover trashed lore/doc. no id lists the trash. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/linklore/linklore-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server