From bf68aaadbd9522f6313974cdb3d01c9a81f592ee Mon Sep 17 00:00:00 2001 From: louis Date: Wed, 30 Sep 2026 11:55:45 -0700 Subject: [PATCH 1/3] feat(mcp): add Screenpipe to the built-in catalog --- CHANGELOG.md | 4 ++++ crates/tuff-core/assets/mcp-catalog.toml | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b9b24a..0c5dac5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The historical entries below were reconstructed from release tags, merged pull r ## [Unreleased] +### Added + +- **The MCP catalog includes Screenpipe.** `tuff add mcp screenpipe` installs the official `screenpipe-mcp` server, which searches screen text and audio that Screenpipe captured on the machine, lists meetings, and summarizes activity. It needs Screenpipe running on `localhost:3030` and `SCREENPIPE_LOCAL_API_KEY` from `screenpipe auth token`. + ## [0.15.0] - 2026-10-02 ### Added diff --git a/crates/tuff-core/assets/mcp-catalog.toml b/crates/tuff-core/assets/mcp-catalog.toml index af44c99..2b92a61 100644 --- a/crates/tuff-core/assets/mcp-catalog.toml +++ b/crates/tuff-core/assets/mcp-catalog.toml @@ -167,3 +167,17 @@ transport = "http" url = "https://mcp.context7.com/mcp" headers = { Authorization = { from_env = "CONTEXT7_API_KEY", format = "Bearer {}" } } tools_summary = "resolve-library-id, query-docs" + +# Official manual NPX configuration and tools: +# https://github.com/screenpipe/screenpipe/tree/main/packages/screenpipe-mcp +# Source-available under the Screenpipe Commercial License: +# https://github.com/screenpipe/screenpipe/blob/main/LICENSE.md +[[servers]] +id = "screenpipe" +version = "1.0.0" +description = "Search screen text and audio captured by Screenpipe, recall meetings, and summarize activity. Needs Screenpipe running on localhost:3030 and a key from `screenpipe auth token`. Screenpipe's cloud features, when enabled, can send this context off the machine." +transport = "stdio" +command = "npx" +args = ["-y", "screenpipe-mcp@latest"] +env = ["SCREENPIPE_LOCAL_API_KEY"] +tools_summary = "search-content, keyword-search, activity-summary, list-meetings, get-meeting" From 1ee7508d3bc65d6bcf8e3279be7888a4076ee291 Mon Sep 17 00:00:00 2001 From: Kannan Kalidasan Date: Fri, 2 Oct 2026 22:28:51 +0100 Subject: [PATCH 2/3] docs(plugin): list screenpipe among the catalog ids --- crates/tuff-cli/assets/tuff-cli-guide.md | 2 +- plugins/tuff/skills/tuff-cli-guide/SKILL.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/tuff-cli/assets/tuff-cli-guide.md b/crates/tuff-cli/assets/tuff-cli-guide.md index 6e702ac..c18474e 100644 --- a/crates/tuff-cli/assets/tuff-cli-guide.md +++ b/crates/tuff-cli/assets/tuff-cli-guide.md @@ -37,7 +37,7 @@ If the project has no `tuff.lock`, run `tuff init` before anything else. Never h - `tuff create -a ` — create and track a capability - `tuff add pack -a ` — atomically install a verified capability pack - `tuff add -a claude` — install a policy (`type = "policy"`); only Claude Code enforces policies today, and the install is refused for any agent that would not enforce every rule -- `tuff add mcp ... -a ` — wire external MCP servers (catalog: filesystem, memory, github, fetch, git, time, sequentialthinking, everything, brave-search, notion, playwright, sentry, linear, context7) into each harness config; secrets stay as `${VAR}` references. Prompts once per required variable at a real terminal (add `--yes` to skip, or it's automatic in a non-interactive shell) +- `tuff add mcp ... -a ` — wire external MCP servers (catalog: filesystem, memory, github, fetch, git, time, sequentialthinking, everything, brave-search, notion, playwright, sentry, linear, context7, screenpipe) into each harness config; secrets stay as `${VAR}` references. Prompts once per required variable at a real terminal (add `--yes` to skip, or it's automatic in a non-interactive shell) ### Packs - `tuff pack build --name ` — package accepted project capabilities into `tuff-dist/-0.1.0.tuffpack` diff --git a/plugins/tuff/skills/tuff-cli-guide/SKILL.md b/plugins/tuff/skills/tuff-cli-guide/SKILL.md index 6e702ac..c18474e 100644 --- a/plugins/tuff/skills/tuff-cli-guide/SKILL.md +++ b/plugins/tuff/skills/tuff-cli-guide/SKILL.md @@ -37,7 +37,7 @@ If the project has no `tuff.lock`, run `tuff init` before anything else. Never h - `tuff create -a ` — create and track a capability - `tuff add pack -a ` — atomically install a verified capability pack - `tuff add -a claude` — install a policy (`type = "policy"`); only Claude Code enforces policies today, and the install is refused for any agent that would not enforce every rule -- `tuff add mcp ... -a ` — wire external MCP servers (catalog: filesystem, memory, github, fetch, git, time, sequentialthinking, everything, brave-search, notion, playwright, sentry, linear, context7) into each harness config; secrets stay as `${VAR}` references. Prompts once per required variable at a real terminal (add `--yes` to skip, or it's automatic in a non-interactive shell) +- `tuff add mcp ... -a ` — wire external MCP servers (catalog: filesystem, memory, github, fetch, git, time, sequentialthinking, everything, brave-search, notion, playwright, sentry, linear, context7, screenpipe) into each harness config; secrets stay as `${VAR}` references. Prompts once per required variable at a real terminal (add `--yes` to skip, or it's automatic in a non-interactive shell) ### Packs - `tuff pack build --name ` — package accepted project capabilities into `tuff-dist/-0.1.0.tuffpack` From b8a1b8a25ae0c7e2f702b695c71fc48b31b8df36 Mon Sep 17 00:00:00 2001 From: Kannan Kalidasan Date: Fri, 2 Oct 2026 22:37:49 +0100 Subject: [PATCH 3/3] fix(mcp): restore the original Screenpipe catalog description --- crates/tuff-core/assets/mcp-catalog.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/tuff-core/assets/mcp-catalog.toml b/crates/tuff-core/assets/mcp-catalog.toml index 2b92a61..0fbb858 100644 --- a/crates/tuff-core/assets/mcp-catalog.toml +++ b/crates/tuff-core/assets/mcp-catalog.toml @@ -175,7 +175,7 @@ tools_summary = "resolve-library-id, query-docs" [[servers]] id = "screenpipe" version = "1.0.0" -description = "Search screen text and audio captured by Screenpipe, recall meetings, and summarize activity. Needs Screenpipe running on localhost:3030 and a key from `screenpipe auth token`. Screenpipe's cloud features, when enabled, can send this context off the machine." +description = "Search locally captured screen text and audio, recall meetings, and summarize activity. Requires Screenpipe running on localhost:3030 and a local API key from `screenpipe auth token`. Configured cloud AI, transcription, sync and integrations can send context off-device. Source-available under the Screenpipe Commercial License; plans at https://screenpipe.com." transport = "stdio" command = "npx" args = ["-y", "screenpipe-mcp@latest"]