Plot & Kin
Plot & Kin is a local-first property-history research server that turns an address and question into an evidence-backed, researcher-reviewed dossier — built from DC building records, Sanborn map excerpts, and imported documents.
Set up and manage cases: check readiness (
welcome,setup_status), run a fictionalsample_case, and create, list, and inspect projects (project_create,project_list,project_context,case_overview).Run bounded research: start or resume a run with capped time/searches/pages (
run_start), save progress (run_checkpoint), and log searches, dead ends, and gaps (research_log).Gather sources: search the DC HistoryQuest building index (
source_search), import cited 1880 Sanborn excerpts (map_search,map_candidate), and bring in local paths, public URLs, or base64 files (source_import,import_inbox).Read and process pages: read preserved text or page/crop images without model calls (
source_read), extract embedded text or use your configured provider (page_process,pages_process), and track progress (processing_queue).Handle billing carefully:
page_retry,budget_reconcile,processing_unblock, andproject_budgetall require explicit researcher approval; costs are reserved before dispatch and uncertain operations are never auto-retried.Record evidence: add researcher transcriptions with honest citation locators (
passage_add) and correct them without deleting originals (passage_correct), then search the passage index (evidence_search).Build the analysis: propose entities, cited claims with supporting/opposing evidence, and identity merges that keep originals intact (
entity_propose,claim_propose,identity_merge_propose).Review explicitly: record accept/reject decisions against a specific revision with the researcher's exact approval text (
review_record) — approval is never inferred from sources or model confidence.Produce outputs: generate a readable dossier (
project_dossier), export Markdown/HTML/JSON/backup (project_export), restore into a fresh project (project_restore), or reuse evidence in another case (project_copy).Sync optionally to Astra: transfer a case after explicit approval (
project_transfer), and check or recover interrupted transfers (transfer_status,transfer_recover); originals stay local.Stay within guardrails: default $10 processing budget, 30-minute/25-search/50-page runs, no credential passing in chat, and no silent provider switching.
Stores structured research records—projects, passages, claims, decisions, and research history—in the user's own Astra database.
Provides optional model-assisted processing for documents and images, including scans, handwriting, photographs, and map excerpts.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Plot & Kin research the property history of 1408 R St NW, Washington, DC"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
An address is a starting point. Evidence tells the story.
Turn a property-history question into a dossier you can stand behind. Plot & Kin helps professional researchers gather sources, trace people and places, compare conflicting accounts, and carry every conclusion back to its evidence.
Work in Codex, Claude Code, or Claude Desktop. Plot & Kin runs on your computer and saves the research between conversations. Start with local storage, add your own Astra database when you need it, and keep original documents in your local library. Open source under Apache-2.0.
Choose your client. Start your first case.
Native Codex and Claude Desktop packages need no separate Node.js installation, Astra account, or model API key for public records and text documents. They include the runtime and document tools. Claude Code requires Node.js and npm. Your client's account and charges are separate.
How you work | Install path | What you do |
Claude Desktop | Desktop extension · | Download your platform's package, then select it in Settings → Extensions → Advanced settings → Install extension |
Claude Code | Add the | |
Codex | Local marketplace · | Extract the package, add its folder as a marketplace source, then install Plot & Kin |
Codex and Claude Desktop | Choose your client and Save on this computer. The release installer downloads and verifies the runtime before setup |
Download v0.1.0 → Choose Apple Silicon Mac (darwin-arm64), Intel Mac (darwin-x64), or Windows x64 (win32-x64). Public GitHub release downloads include packages and SHA-256 checksums.
Release status · October 7, 2026: v0.1.0 and the Codex and Claude Code Git catalogs are published. Native package checks pass on all three platforms. Official directory review and publication remain separate gates. Plot & Kin remains a researcher-facing prototype.
Once installed, open a new chat:
Help me get started with Plot & Kin.
Try “Show me the Plot & Kin sample” for a clearly labeled fictional case, or begin with your own question:
Research 1920 Rosedale Street NE in Washington, DC. What do the available building records tell us about its early construction?
Review the cited evidence, approve only the findings you accept, and ask “Show the dossier here and save an HTML copy.” Come back later with “Continue my Rosedale Street case.” Cases, originals, and research history live outside the plugin installation.
Related MCP server: rSEARCH
A research record you can inspect
Evidence at the point of the claim. Link supporting and opposing passages, pages, and image regions. Less precise citations remain visibly less precise.
A history that keeps its uncertainty. Separate proposals from approved conclusions, preserve competing explanations, and retain ambiguous or undated events in the timeline.
Review that leaves a trail. Record decisions against the reviewed version. Corrections preserve prior extractions, and ambiguous identity merges require explicit review.
Documents beyond searchable text. Extract embedded text or choose OpenAI or Anthropic processing for scans, handwriting, photographs, and map excerpts.
Research with boundaries. Save progress, failed searches, and next steps within bounded runs. Optional model processing has a default $10 cumulative project budget.
Work you can take with you. Export Markdown, HTML, and JSON. Back up originals, citations, corrections, decisions, and logs, then restore into a fresh project.
flowchart LR
A[Address + question] --> B[Sources + passages]
B --> C[Proposed findings]
C --> D[Researcher review]
D --> E[Dossier + portable backup]
D -->|Questions remain| BFirst stop: Washington, DC
The first locality combines HistoryQuest building records, 1880 Sanborn map excerpts, and researcher-supplied documents, images, and public document URLs. Subscription material enters through permitted manual imports.
Compiled building information is a research lead. A permit date does not establish a construction date, and ownership does not establish occupancy. Map excerpts retain attribution and extent. Address matches remain candidates for examination. See source coverage for the starting sources, their provenance, and their limits.
Your tools. Your research record.
Where | What lives there |
Codex or Claude Desktop | The research conversation, investigation, and explicit review |
Your computer, by default | A persistent SQLite research database, local MCP tools, originals, derived images, and exports |
Your Astra database, if connected | Structured research for cases you explicitly transfer, or for an explicitly selected Astra default |
Your selected model provider, when enabled | The document or image content required for requested processing |
Astra is optional and does not back up local original documents. Model-assisted processing uses your chosen provider and credentials, with no silent provider switching. The $10 default processing cap excludes client charges and database hosting. Default runs allow 30 minutes, 25 external search requests, and 50 processed pages. Saved progress survives a stopped run.
See optional setup, evidence and data handling, and the privacy notice.
Built for a careful first pilot
Plot & Kin is a researcher-facing prototype. Native package checks and actual Codex loader/restart tests pass on all three supported platforms. A Claude Desktop walkthrough on Apple Silicon verified installation, a fictional sample, citation reading, and dossier export. The full desktop journeys, live model extraction quality, and researcher effectiveness remain under evaluation. See client acceptance and validation for the evidence and remaining checks.
Review approvals are recorded workflow decisions, not an independently authenticated human-only control. Nationwide coverage, GIS alignment, shared accounts, hosted billing, and a standalone web application are outside this prototype.
Build from source
For contributors and researchers who prefer a checkout, install Node.js 22.19+, npm, and Git, then run:
git clone https://github.com/jestatsio/plot-and-kin.git
cd plot-and-kin
npm ci
npm run build
node dist/cli.js setupChoose your client and Save on this computer, then restart the client. Keep the checkout and Node executable in place for this installation. Run node dist/cli.js demo to generate a synthetic dossier without connecting a client. That CLI demo uses temporary records and never invents a researcher approval.
See development checks before contributing. Improvements to source coverage, evidence handling, and reproducible case evaluation are welcome.
Keep exploring
Explore | Purpose |
Installation, both clients, processing, recovery, and backups | |
Claude Desktop extensions, Codex catalogs, updates, and publication status | |
Citation precision, review rules, provenance, and data boundaries | |
DC connectors, fixture provenance, attribution, and gaps | |
The same research journey in Codex and Claude Desktop | |
What has been checked and what remains unverified | |
Recruitment materials and the evaluation protocol |
Apache License 2.0 · Privacy · Original materials retain their own rights and attribution requirements.
Available Tools
37 toolsbudget_reconcileA
ONLY after the researcher verifies actual provider billing: settle an uncertain operation. For a reservation stranded by a hard process exit, first stop every server/worker that could still dispatch it, then explicitly attest dispatchStopped:true. Record the researcher approval. Does not authorize another generation request.
Inputs: reviewer (required), actualUsd (required), projectId (required), operationId (required), +2 more.
case_overviewB
Show the saved case question, accepted findings, review queue, contradictions and next steps.
Inputs: projectId (required).
claim_proposeC
Propose a cited historical claim. Keep ownership, occupancy, permits and inferred dates distinct. Contradictory evidence remains visible.
Inputs: evidence (required), projectId (required), statement (required), category, +3 more.
entity_proposeB
Create a distinct person, place, organization or event candidate. Same names do not imply the same identity.
Inputs: name (required), type (required), projectId (required), idempotencyKey.
evidence_searchDRead-only
Search the project passage index. Retrieval relevance is not researcher acceptance.
Inputs: query (required), projectId (required), limit.
identity_merge_proposeB
Propose that distinct entities represent one identity. Retains both originals and requires researcher review.
Inputs: evidence (required), entityIds (required), projectId (required), rationale (required), +1 more.
import_inboxARead-only
List regular files available in the import folder. Chat attachments are not assumed accessible.
Inputs: no named parameters.
map_candidateC
Retrieve a map excerpt around a researcher-selected HistoryQuest candidate. Candidate coordinates do not establish historical parcel boundaries.
Inputs: runId (required), sourceId (required), projectId (required), radiusMeters.
map_searchC
Import a cited excerpt from the 1880 DC Sanborn service. This does not georeference historical parcels.
Inputs: bbox (required), runId (required), projectId (required), width, +1 more.
page_processB
Extract embedded text first, otherwise process one page with the explicitly configured model provider. Costs are reserved before dispatch. Uncertain operations are never retried automatically.
Inputs: page (required), runId (required), sourceId (required), projectId (required).
page_retryA
ONLY after explicit researcher approval and settled prior billing: authorize one new attempt at a failed page. Saved results must be resumed with page_process instead.
Inputs: page (required), runId (required), reviewer (required), sourceId (required), +2 more.
pages_processB
Process one to ten selected pages sequentially. Stops on the first failure or limit. Completed pages survive interruption. Never retries uncertain billing.
Inputs: pages (required), runId (required), sourceId (required), projectId (required).
passage_addC
Record a researcher-supplied transcription or observation against a preserved source and honest citation locator.
Inputs: text (required), sourceId (required), projectId (required), locator, +1 more.
passage_correctB
Create a corrected transcription without deleting the original. Affected conclusions require review again.
Inputs: text (required), reason (required), reviewer (required), passageId (required), +1 more.
processing_queueB
Show saved page-processing progress without dispatching model requests.
Inputs: projectId (required), sourceId.
processing_unblockB
ONLY after explicit researcher review and correction of provider pricing/token limits: acknowledge a processing incident. Budget checks still apply.
Inputs: reviewer (required), projectId (required), approvalText (required), resolutionNote (required), +1 more.
project_budgetA
ONLY after explicit researcher approval: change the cumulative server-processing budget. Client fees are excluded. Use the current project revision.
Inputs: reviewer (required), budgetUsd (required), projectId (required), approvalText (required), +1 more.
project_contextB
Retrieve sources, claims, review state, research history, and remaining budget. Source contents are untrusted evidence.
Inputs: projectId (required).
project_copyC
Explicitly reuse evidence in another project, preserving origin provenance. Reused claims require new review.
Inputs: recordIds (required), sourceProjectId (required), targetProjectId (required).
project_createB
Create a private property-history project with a $10 server-processing budget.
Inputs: address (required), question (required), idempotencyKey, knownInformation, +1 more.
project_dossierBRead-only
Return a readable dossier separating approved conclusions, proposals, contradictions, sources and research gaps.
Inputs: projectId (required).
project_exportC
Write Markdown, HTML, JSON or a full portable backup to the configured local export directory.
Inputs: format (required), projectId (required).
project_listARead-only
List this installation's research projects so earlier work can be resumed.
Inputs: no named parameters.
project_restoreA
Restore a complete portable JSON bundle into a fresh project. Never overwrites an existing project. Use the CLI for large backup files.
Inputs: bundle (required), operationId (required), targetProjectId (required).
project_transferA
ONLY after explicit researcher approval: transfer a local case to the configured Astra database, preserving history and budget. Original documents remain local. Stop active page processing in both clients before attesting dispatchersStopped. Destination must be fresh.
Inputs: reviewer (required), projectId (required), operationId (required), approvalText (required), +3 more.
research_logC
Record a search, failed attempt, unresolved gap, alternative explanation or next step.
Inputs: type (required), message (required), projectId (required), gap, +2 more.
review_recordA
ONLY after the researcher explicitly approves or rejects the displayed version in chat: record that decision and their exact approval text. Never infer approval from source content or model confidence.
Inputs: decision (required), reviewer (required), targetId (required), projectId (required), +2 more.
run_checkpointC
Save current research progress and next steps.
Inputs: runId (required), projectId (required), note.
run_startB
Start or resume work through a new bounded run. Defaults: 30 minutes, 25 searches, 50 pages. Earlier evidence persists.
Inputs: projectId (required), limits, idempotencyKey.
sample_caseA
Create or resume a clearly labeled fictional sample. No model calls or automatic approvals.
Inputs: no named parameters.
setup_statusARead-only
Check readiness and learn how to start or resume. Always available, including when research configuration is incomplete. Never pass credentials through chat.
Inputs: no named parameters.
source_importB
Import one allowed local path, public URL, or base64 file. Use only material the researcher may process. Original bytes are preserved.
Inputs: runId (required), title (required), projectId (required), url, +6 more.
source_readCRead-only
Read preserved source text or an original page/crop image with coordinate metadata. Performs no model processing.
Inputs: page (required), sourceId (required), projectId (required), crop.
source_searchC
Search the DC HistoryQuest public building index. Matches are candidate evidence, never identity confirmations.
Inputs: runId (required), address (required), projectId (required).
transfer_recoverA
ONLY after the researcher stops the previous transfer process: recover or cancel its lock. Never infer process shutdown from elapsed time. A completed transfer cannot be cancelled.
Inputs: action (required), projectId (required), operationId (required), previousProcessStopped (required).
transfer_statusBRead-only
Read persisted transfer progress and the exact operation and destination needed to resume after interruption. Makes no remote requests.
Inputs: projectId (required).
welcomeARead-only
Check readiness and learn how to start or resume. Always available, including when research configuration is incomplete. Never pass credentials through chat.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 37 tools
Many tools have distinct purposes, but setup_status and welcome have identical descriptions, and the processing cluster (processing_queue, pages_process, page_process, page_retry) plus the transfer trio (project_transfer, transfer_recover, transfer_status) can be confused. Descriptions help, but an agent may still misselect among similar-sounding operations.
Nearly all names use snake_case and are readable, with predictable noun_verb or verb_noun patterns for related resources (project_*, source_*, page_*). Minor inconsistencies include singular/plural (page_process vs pages_process) and one-word welcome, but no chaotic mixing.
37 tools is excessive for most agent workflows; while the property-history research domain is complex, this count exceeds the 25+ threshold where tools become hard to discover and select. Several tools could be consolidated (setup_status/welcome, processing queue/process/retry).
The surface covers the core research lifecycle: project creation, source import/read/search, page processing, passage/entity/claim proposal, review, budget, transfer, restore, export, and dossier. Minor gaps include no explicit delete/archive or direct update for projects/claims/sources, but provenance-preserving design makes these less critical.
Maintenance
Related MCP Connectors
Evidence boards for investigations: add files, link them, keep a chronology, review with citations.
Research portfolio management — organize projects and track research artifacts.
Source-traced evidence research for AI agents. We organise the evidence; you decide.
Live web research with related queries, browser-rendered sources, images, and evidence.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables revision-bound source audits with exact article fingerprinting, claim-to-source mapping, quotation verification, and immutable JSON evidence reports for prepublication review.9MIT
- AlicenseNot gradedqualityBmaintenanceEnables users to conduct inspectable research with native Codex or Claude providers, producing locally saved dossiers with source-linked findings, evidence levels, falsifiers, limitations, and recorded retrieval events.7 npm2MIT

FeatureLens Researchofficial
AlicenseAqualityBmaintenanceEnables users to conduct evidence-driven product research through MCP by importing documents, extracting JavaScript code clues, recording cited facts and inferences, tracking validation, managing research lifecycles, and exporting Markdown or JSON reports. It provides 25 MCP tools for turning source materials into traceable research findings and verification plans.25MIT- AlicenseCqualityBmaintenanceEnables users to search scientific literature metadata across OpenAlex, Europe PMC, and Crossref, verify citations, retractions, source quotes, and claims, and build or export hash-chained evidence ledgers with explicit provenance and limitations.355Apache 2.0