# Combining multiple MCP servers: where memory fits

You connected Claude to your calendar. Then your CRM. Then your repo and your docs. The stack is impressive.

Then you open a new chat and Claude knows none of what you decided last week. It can fetch your schedule and your tickets again, live, but the reasoning is gone. Every session starts over.

The servers do things. Nothing remembers. That is the missing piece in most MCP stacks.

## Two kinds of MCP server

It helps to stop thinking of MCP servers as one undifferentiated list of connectors and split them in two.

**Action servers** do something live in an external system. A calendar connector reads your schedule. A CRM connector pulls a deal. A GitHub or Linear connector reads issues, or opens one, depending on permissions. They are the assistant's hands.

**A memory server** holds durable, reusable context the assistant reads to stay grounded: what was decided, why, who owns it, what is next. It is the assistant's notebook.

Almost every connector people add is an action server. Very few stacks have the second kind, which is exactly why the assistant feels capable and forgetful at the same time.

## Why a pile of action servers is not memory

Stacking more action servers does not add up to a memory. Three reasons:

- **They are isolated.** Your calendar connector does not know what your CRM connector saw. Nothing flows between them.
- **They are scoped to their app.** Each one returns its own slice: events, tickets, records. None of them holds the decision you made *about* that data.
- **They do not carry your reasoning across sessions.** They answer the question you ask now, then the next session starts fresh. And what Claude reaches is often not what ChatGPT reaches.

So the more you connect, the more capable the assistant looks, and the more obvious it becomes that no one is keeping the thread.

## The memory layer

Hjarni is a Markdown knowledge base with a built-in MCP server, and it sits in the second slot. It does not fetch your calendar or query your CRM. It holds the few paragraphs of durable context the action servers never keep.

Three things make it the memory layer rather than another action tool:

- **It is writable.** You and your assistant save decisions to it, not just read from it.
- **It persists.** A note you wrote three weeks ago is there in today's session, unchanged.
- **It is cross-client.** Claude and ChatGPT read the same notes over MCP, so the context survives no matter which assistant you open.

The action servers give the assistant reach. Hjarni gives it memory.

## A sample stack

Picture a working setup:

- **Calendar connector** for the schedule ([does Claude read Google Calendar?](/blog/can-claude-read-my-calendar))
- **CRM connector** for the pipeline ([does Claude read my CRM?](/blog/can-claude-read-my-crm))
- **Project connector** for the tickets ([does Claude read Notion, Linear, or Asana?](/blog/can-claude-read-my-notion))
- **Email connector** for the threads ([does Claude read my email?](/blog/can-claude-read-my-email))
- **Hjarni** for the decisions, context, and reasoning all of those leave behind

The connectors answer "what is on the calendar, what is in the pipeline, what is in the inbox." Hjarni answers "what did we decide, and why." You ask Claude to read the relevant note first, and the live data lands in context instead of a vacuum.

## How it works across Claude and ChatGPT

Connect Hjarni's built-in MCP server. It takes five minutes. ([Claude guide](/docs/connect-claude-mcp), [ChatGPT guide](/docs/connect-chatgpt-mcp)) For the integration overview, see [Hjarni for Claude](/for/claude). New to the protocol? Start with [what is MCP](/docs/what-is-mcp).

The action servers are set up on the other side, inside your assistant rather than in Hjarni; see [Claude's integrations overview](https://claude.com/blog/integrations) and [ChatGPT's connectors guide](https://help.openai.com/en/articles/11487775-connectors-in-chatgpt). Hjarni is the one you point at over MCP with the guides above.

Add it alongside whatever action servers you already run. After a decision, save a few sentences. Next session, in either client, the assistant reads the note and the rest of the stack finally has something to be grounded against.

This generalises the same idea behind giving [Claude real meeting context](/blog/ai-meeting-assistant-that-works-with-claude): keep the tools that do the work, and add one layer that remembers what the work was for.

## Set it up

1. Create a free Hjarni account at [hjarni.com](https://hjarni.com)
2. [Connect Claude](/docs/connect-claude-mcp) or [ChatGPT](/docs/connect-chatgpt-mcp) to Hjarni's built-in MCP server
3. Keep your action connectors; add Hjarni as the memory layer beside them
4. Ask your assistant: "Read my note on this before you use the other tools."

Let the stack do the work. Let Hjarni remember why.

[Free to start. No credit card required.](/docs/getting-started)
