Documentation
Three reading paths: use Historis, connect your assistant, or go deep with the developer reference
Reading paths
01Using Historis
Track contacts and events day to day. No AI required.
Getting started
Create your account and get going in minutes
Create an account
Free signup, no credit card required.
Create your first event
Describe what happened. Historis organizes the rest.
Connect your assistant
Optional: connect your assistant and let it write things down for you.
Key concepts
The building blocks of Historis
Events
The basic unit. An event contains free-form text, a status (open, in progress, closed), a due date, and a follow-up date. It's your working memory.
Persons
Your contacts: clients, suppliers, partners. Each person has a name, phone, email, and notes. Link them to events to build a history.
Tags
Classify your events and persons with tags. Counters update automatically. Filter by tag to find what matters.
Statuses
Lifecycle: Open → In Progress → Closed. Add a resolution when closing. Filter by status to see what's left to do.
Teams
Organize your members into teams. Teams are the foundation for visibility control — restrict who can see specific events and contacts. The Free plan includes one team; paid plans are unlimited.
Visibility
Control who sees what. Each event and contact has a visibility level: Organization (everyone), Teams (only assigned teams), or Private (only you). Set visibility when creating or editing.
Rules
Plain-language instructions saved for your whole organization. Historis indexes them; your connected assistant finds the relevant rule and applies it, marked ◆, never executed server-side.
02Connect your assistant
Your assistant reads your history and writes things down for you; what it writes is marked ◆.
Connect your assistant
Your assistant reads your history and writes things down for you
Historis works entirely without AI. But if you already use an assistant like Claude or ChatGPT, you can connect it: it reads your history to catch you up, and writes things down for you. Everything it writes is marked ◆, the mark of entries added by an assistant: dated, signed, correctable. You choose what each assistant can read or write, and every action it takes shows up in the activity log.
MCP Server URL
Claude Desktop
Add this block to your claude_desktop_config.json:
{
"mcpServers": {
"historis": {
"url": "https://api.historis.app/mcp"
}
}
}ChatGPT
In ChatGPT Settings → MCP Servers → Add Server. Paste the URL above and authorize via OAuth.
Cursor
In Settings → MCP → Add server. Same JSON config as Claude Desktop.
Rules
Reusable instructions your assistant follows
A rule is a short instruction written in plain language and saved once for your whole organization. Historis stores and indexes your rules but never runs them itself: when your assistant works on something that matches, it finds the relevant rule and applies it, marking what it did with ◆. Because rules live with your organization, every teammate's assistant follows the same playbook.
How it works
- Each rule is indexed by keywords and the people it mentions, so your assistant surfaces it exactly when it is relevant, not on every event.
- Rules are saved at the organization level, so they apply across your whole team. Write a convention once and everyone's assistant follows it.
- Your assistant reads the rule and acts on it: tagging, linking, routing, setting a follow-up. Every change it makes is marked ◆ so you can tell its work from yours.
- Historis never executes a rule on its own. Nothing happens server-side and no event is changed behind your back; rules only guide the assistant you connect.
Teach your assistant, and let it improve
- Just tell your assistant in chat: "From now on, file anything from a supplier under #wholesale." Ask it to save that as a rule and it becomes part of the playbook.
- Caught it mis-tagging or routing something to the wrong place? Tell it what was wrong and ask it to record the rule. The next time, for you or any teammate, it gets it right.
- You can also write rules yourself in plain markdown from the Rules page. No special syntax, no conditions to configure — a clear sentence is enough.
Example rules
03Developer reference
Full technical depth: the MCP protocol, the tools, webhooks and authentication.
MCP Tools Reference
All tools available to your agent
Context & briefing
| Tool | Description |
|---|---|
| get_organization_context | Cold-start briefing: organization, members, teams, frequent tags, stats, recent activity |
| manage_organization | Write org context via action: set_description (org), set_team_context (team), set_member_context (member, owner only) |
| get_daily_brief | Morning brief: overdue, due today, upcoming, and stale events in one structured snapshot |
| get_person_context | Full context for a person: identity, tags, open events, recent history, summary stats |
Events
| Tool | Description |
|---|---|
| create_event | Capture an event: free-form text, tags, persons, deadlines, idempotent on external source ids |
| search_events | Search and filter events: text, status, tags, person, dates, deadlines (due_before, due_today) |
| manage_event | Single-event operations via action: get, update, delete, add_update, link_events, link_person, link_tag, thread, batch_update_status, close_loop |
| bulk_create_events | Batch import up to 50 events from a JSON array, idempotent per (source_type, source_id) |
Persons
| Tool | Description |
|---|---|
| search_persons | Discover contacts by full-text search across all their fields (accent-insensitive) and by the relationship graph: filter by kind and by a role on linked contacts (with_role / without_role) |
| search_or_create_person | Find a person by name (optionally email), create if not found, upsert tags |
| bulk_create_persons | Batch-create up to 50 contacts from a JSON array, skipping duplicates by email |
| manage_person | Person operations via action: update (name, contact info, notes, tags, visibility), delete |
| manage_relationship | Contact-to-contact links via action: list, create, update (note), delete |
Tags
| Tool | Description |
|---|---|
| manage_tags | Tag operations via action: list (by usage), analyze_duplicates, update (description), merge, keep_separate |
Rules
| Tool | Description |
|---|---|
| find_applicable_rules | Preview which active rules would match a draft event before creating it |
| manage_rules | Rule operations via action: list, get, search, create, update, toggle, delete -- create/update can scope a rule to a team via team_name |
Knowledge
| Tool | Description |
|---|---|
| search_knowledge | Search knowledge notes: full-text always (accent-insensitive French), a semantic branch fused with the full-text results when a query embedding is supplied, filters by tag, status, person or event |
| manage_knowledge | Durable knowledge notes via action: get, create, update, archive, link, unlink, supersede -- tagged decision/reflection/observation and linked to the contacts and events they concern |
Spotlight — the daily brief
get_daily_briefThe most differentiating tool. One call returns a structured snapshot of everything that needs attention: overdue work, deadlines due today, what is coming up, and stale open events. Your agent turns it into a morning briefing.
Incoming webhooks
Let your other apps push events into Historis automatically.
An incoming webhook is a URL you can POST to. Whenever something happens in another tool — a payment, a form submission, a closed deal — that tool sends a small JSON payload to your webhook URL and Historis turns it into an event. No code required on the Historis side.
Create an endpoint
In Settings -> Webhooks, click New endpoint (Pro or Business) and give it a name like "Stripe payments".
Copy the URL and token
Historis shows the endpoint URL and a secret token once. Store the token securely — it is shown only at creation.
Send your events
Point your app (or Zapier / Make / n8n) at the URL with the token in the Authorization header. Each request creates an event.
Example request
curl -X POST https://api.historis.app/api/webhooks/ingest/YOUR_ENDPOINT_ID \
-H "Authorization: Bearer whk_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: pi_3abc123" \
-d '{
"content": "Payment received — 450 EUR",
"status": "open",
"tags": ["payment"],
"person": { "name": "Pierre Dupont", "email": "pierre@example.com" },
"metadata": { "external_id": "pi_3abc123", "source": "stripe" }
}'- Only content is required. status, tags, person (name, email) and metadata are optional — a person is matched by email, or created automatically.
- Idempotency: send an Idempotency-Key header (or metadata.external_id) so a retried delivery is de-duplicated instead of creating a second event.
- The token is a secret: send it over HTTPS in the Authorization header, never in the URL. Revoke an endpoint anytime to cut it off instantly.
- Works with anything that can POST JSON — Zapier, Make, n8n, or your own backend.
Authentication
How access works
OAuth 2.1
OAuth 2.1 with PKCE — the standard flow for MCP agents. Authorization is automatic: your agent will ask you to approve access the first time.
API Tokens
For direct integrations, create a token in Settings → API Tokens. The token is shown only once.
FAQ
How do I create an event from my assistant?
Just tell your assistant: "Create an event in Historis: meeting with John about the website quote". It writes the event down for you, marked ◆.
My assistant isn't applying a rule
Rules are not run by Historis: your assistant applies one when it finds a relevant match. Check that the rule is active and that its keywords (or linked people) match what you are working on, then ask your assistant to look for applicable rules.
How do I find overdue events?
Ask your assistant: "What needs handling today?". It pulls the daily catch-up: overdue, due today, upcoming and stale events, in one pass. Deadline filters for targeted searches are covered in the developer reference below.
MCP authentication is failing
The OAuth token may have expired. Disconnect and reconnect the MCP server in your assistant's settings.
Resources
Every Historis documentation link, product and legal, in one place.
Usage
What the MCP server is, the data it exposes, authentication and example prompts.
Machine-readable index of Historis for AI assistants and crawlers.
The full contract of the event search: every parameter, combination semantics, response schema and copyable examples.
The full contract of the contact search: descriptive full-text, role filters over the relationship graph, response schema and examples.
How durable notes give your AI a shared, lasting memory: provenance, context injection, and search over MCP.