---
title: "How to serve issues, notes, and skills over MCP"
description: "Connect an MCP client to repository stores with read access by default."
type: how-to
canonical_url: https://eng.rip/how-to-serve-issues-notes-and-skills-over-mcp/
---

# How to serve issues, notes, and skills over MCP

Start with initialized stores and the corresponding tools installed. Each server resolves its store as the CLI does; [Tools](<tools.md>) gives the resolution rule. Run from the repository, or use `--root <dir>` to name the store directory literally.

## Start the servers

For an MCP client that starts tisket and uses stdin and stdout, configure it to run:

```sh
tisket serve
```

For a client that connects over HTTP, start each server in a separate terminal:

```sh
tisket serve --bind 127.0.0.1:7432
zettel serve --bind 127.0.0.1:7431
almanac serve --bind 127.0.0.1:8931
```

Tisket prints:

```
tisket serving on http://127.0.0.1:7432/mcp (read-only)
```

Zettel and almanac print the same form with their names and ports. Each server answers what the CLI answers and is read-only by default.

## Connect the client

Set the MCP client's HTTP server addresses to the corresponding endpoints:

| Store | Endpoint |
| --- | --- |
| Issues | `http://127.0.0.1:7432/mcp` |
| Notes | `http://127.0.0.1:7431/mcp` |
| Skills | `http://127.0.0.1:8931/mcp` |

None of the servers has authentication. Keep the bind address at `127.0.0.1`, or put an authenticating proxy in front.

## Set access and surfaces

If the client needs to append working notes to an issue, start tisket with write access:

```sh
tisket serve --access read-write
```

This adds only scratch-note appends. The caller cannot create an issue, change a status, or edit a body.

If the client needs to create notes, start zettel with write access:

```sh
zettel serve --access read-write
```

Every note written through the server is recorded as agent-written. The server never exposes approval. Use [How to keep an issue's research in notes](<how-to-keep-an-issues-research-in-notes.md>) for human review.

For an HTTP server, set the same `--access read-write` option on its bound invocation.

Almanac is always read-only. Its default surfaces are `skills,tools`; use `--surfaces skills,resources,tools` to include resources.

The CLI references list server options for [tisket](https://tisket.eng.rip/cli-reference/), [zettel](https://zettel.eng.rip/cli-reference/), and [almanac](https://almanac.eng.rip/cli-reference/).
