MCP Server Builder
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
Guidance for querying a Slackdump SQLite3 database directly via the sqlite3 CLI.
$ npx skills add rusq/slackdump --skill slackdump-sqlite3 -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rusq/slackdump slackdump-sqlite3 --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/rusq/slackdump.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 .claude/skills/slackdump-sqlite3 && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "slackdump-sqlite3" agent skill from https://github.com/rusq/slackdump/tree/master/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 into .claude/skills/slackdump-sqlite3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slackdump-sqlite3", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/rusq/slackdump/tree/master/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add rusq/slackdump --skill slackdump-sqlite3 -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rusq/slackdump slackdump-sqlite3 --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rusq/slackdump.git skills-src && mkdir -p .agents/skills && cp -r skills-src/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 .agents/skills/slackdump-sqlite3 && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "slackdump-sqlite3" agent skill from https://github.com/rusq/slackdump/tree/master/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 into .agents/skills/slackdump-sqlite3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slackdump-sqlite3", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rusq/slackdump --skill slackdump-sqlite3 -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rusq/slackdump slackdump-sqlite3 --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rusq/slackdump.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 .cursor/skills/slackdump-sqlite3 && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "slackdump-sqlite3" agent skill from https://github.com/rusq/slackdump/tree/master/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 into .cursor/skills/slackdump-sqlite3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slackdump-sqlite3", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/rusq/slackdump.git --path cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add rusq/slackdump --skill slackdump-sqlite3 -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rusq/slackdump slackdump-sqlite3 --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rusq/slackdump.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 .gemini/skills/slackdump-sqlite3 && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "slackdump-sqlite3" agent skill from https://github.com/rusq/slackdump/tree/master/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 into .gemini/skills/slackdump-sqlite3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slackdump-sqlite3", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install rusq/slackdump slackdump-sqlite3Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add rusq/slackdump --skill slackdump-sqlite3 -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rusq/slackdump.git skills-src && mkdir -p .github/skills && cp -r skills-src/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 .github/skills/slackdump-sqlite3 && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "slackdump-sqlite3" agent skill from https://github.com/rusq/slackdump/tree/master/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 into .github/skills/slackdump-sqlite3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slackdump-sqlite3", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rusq/slackdump --skill slackdump-sqlite3 -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rusq/slackdump slackdump-sqlite3 --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rusq/slackdump.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 .opencode/skills/slackdump-sqlite3 && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "slackdump-sqlite3" agent skill from https://github.com/rusq/slackdump/tree/master/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 into .opencode/skills/slackdump-sqlite3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slackdump-sqlite3", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
slackdump-sqlite3Guidance for querying a Slackdump SQLite3 database directly via the sqlite3 CLI.
Slackdump Sqlite3 is an agent skill from rusq/slackdump. Guidance for querying a Slackdump SQLite3 database directly via the sqlite3 CLI.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with SQLite, Slack and Model Context Protocol. The repository describes itself as: Save or export your private and public Slack messages, threads, files, and users locally without admin privileges. The licence is AGPL-3.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 88e7c22. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are sql).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Slackdump Sqlite3 loads about 1.6k tokens when it runs. Until then it costs about 25 tokens; SKILL.md has 503 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from rusq/slackdump at commit 88e7c22, republished under its AGPL-3.0 licence (© rusq). 503 words, ~1,596 tokens.
.claude/skills/slackdump-sqlite3/SKILL.md (or your agent's skills folder).Use this skill when the Slackdump MCP and SQLite MCP are both unavailable and
you must fall back to the sqlite3 command-line tool.
Look for slackdump.sqlite in the current directory or the archive directory.
If multiple files exist, ask the user to choose one.
You must not run any UPDATE, DELETE, INSERT, DROP, CREATE, or other
DML/DDL statements. Only SELECT and data-dictionary queries are permitted.
-- List all tables
.tables
-- Show schema for a table
.schema MESSAGE
| Table | Description |
|---|---|
| SESSION | One row per slackdump invocation |
| CHUNK | One row per Slack API call |
| TYPES | Chunk type lookup (e.g. MESSAGES, THREADS) |
| MESSAGE | Channel and thread messages |
| CHANNEL | Slack channels / conversations |
| S_USER | Workspace members |
| FILE | File attachments linked to messages |
| WORKSPACE | Workspace information |
| CHANNEL_USER | Members of a channel |
| SEARCH_MESSAGE | Messages from slackdump search results |
| SEARCH_FILE | Files from slackdump search results |
| ID | NAME | Stores data in |
|---|---|---|
| 0 | MESSAGES | MESSAGE |
| 1 | THREAD_MESSAGES | MESSAGE |
| 2 | FILES | FILE |
| 3 | USERS | S_USER |
| 4 | CHANNELS | CHANNEL |
| 5 | CHANNEL_INFO | CHANNEL |
| 6 | WORKSPACE_INFO | WORKSPACE |
| 7 | CHANNEL_USERS | CHANNEL_USER |
| 8 | STARRED_ITEMS | (no table) |
| 9 | BOOKMARKS | (no table) |
| 10 | SEARCH_MESSAGES | SEARCH_MESSAGE |
| 11 | SEARCH_FILES | SEARCH_FILE |
Chunk types with (no table) are not implemented yet, but reserved for future implementation. You will not see those chunks in the database.
A MESSAGE row is a thread reply when PARENT_ID IS NOT NULL AND IS_PARENT = FALSE.
Note: thread-parent messages also have PARENT_ID set (equal to their own
ID), so PARENT_ID IS NOT NULL alone matches both parents and replies.
Use IS_PARENT = TRUE to select thread-parent messages, and
IS_PARENT = FALSE AND PARENT_ID IS NOT NULL for replies only.
MESSAGE.ID is not the Slack timestamp string. It is the timestamp
converted to an int64 by stripping the dot:
e.g. "1648085300.726649" → 1648085300726649.
Use MESSAGE.TS for the human-readable Slack timestamp (e.g. for display or
for passing to get_thread).
Every entity table (MESSAGE, CHANNEL, S_USER, FILE, etc.) stores the
complete Slack API JSON payload in a DATA column (stored as a blob). Columns
like TS, PARENT_ID, IS_PARENT, MODE, NAME are extracted for indexing,
but all other fields (reactions, edited timestamps, message subtypes, user
profiles, etc.) are only accessible via SQLite's JSON_EXTRACT:
-- Example: get the subtype and reaction count of messages
SELECT TS,
JSON_EXTRACT(DATA, '$.subtype') AS subtype,
JSON_ARRAY_LENGTH(DATA, '$.reactions') AS reaction_count
FROM MESSAGE
WHERE CHUNK_ID = 44;The same message (same MESSAGE.TS AND MESSAGE.CHANNEL_ID) can appear in
multiple chunks and multiple sessions. There are two distinct reasons:
slackdump resume run the same
message may be fetched again and stored in a newer session.CHUNK.TYPE_ID=0
(channel history) and once under CHUNK.TYPE_ID=1 (thread messages).Always scope your query to the correct chunk type first, then pick the latest session:
CHUNK.TYPE_ID = 0 when querying channel history messages.-- Latest version of each channel-history message in a channel (TYPE_ID=0)
WITH LATEST AS (
SELECT T.ID, MAX(CHUNK_ID) AS CHUNK_ID
FROM MESSAGE AS T
JOIN CHUNK AS CH ON CH.ID = T.CHUNK_ID
WHERE 1=1
AND CH.TYPE_ID IN (0,1)
AND (
T.CHANNEL_ID = [CHANNEL_ID]
AND (
( CH.TYPE_ID=0 AND (CH.THREAD_ONLY=FALSE OR CH.THREAD_ONLY IS NULL))
OR (CH.TYPE_ID=1 AND CH.THREAD_ONLY=TRUE AND T.IS_PARENT=TRUE)
)
)
GROUP BY T.ID
)
SELECT T.ID,T.CHUNK_ID,T.CHANNEL_ID,T.TS,T.PARENT_ID,T.THREAD_TS,T.IS_PARENT,T.IDX,T.NUM_FILES,T.TXT,T.DATA,T.LATEST_REPLY
FROM LATEST L
JOIN MESSAGE AS T ON 1 = 1 AND T.ID = L.ID
AND T.CHUNK_ID = L.CHUNK_ID JOIN CHUNK CH ON T.CHUNK_ID = CH.ID WHERE 1=1
ORDER BY T.ID;CHUNK.TYPE_ID = 1 when querying thread messages.-- Latest version of each thread message in a thread (TYPE_ID=1)
WITH LATEST AS (
SELECT T.ID, MAX(CHUNK_ID) AS CHUNK_ID
FROM MESSAGE AS T
JOIN CHUNK AS CH ON CH.ID = T.CHUNK_ID
WHERE 1=1
AND CH.TYPE_ID IN (0,1)
AND (
T.CHANNEL_ID = [CHANNEL_ID]
AND T.PARENT_ID = [PARENT_MESSAGE_ID]
AND ( JSON_EXTRACT(T.DATA, '$.subtype') IS NULL OR (JSON_EXTRACT(T.DATA, '$.subtype') = 'thread_broadcast' AND CH.TYPE_ID = 1 ) )
)
GROUP BY T.ID
)
SELECT T.ID,T.CHUNK_ID,T.CHANNEL_ID,T.TS,T.PARENT_ID,T.THREAD_TS,T.IS_PARENT,T.IDX,T.NUM_FILES,T.TXT,T.DATA,T.LATEST_REPLY
FROM LATEST L
JOIN MESSAGE AS T ON 1 = 1 AND T.ID = L.ID
AND T.CHUNK_ID = L.CHUNK_ID JOIN CHUNK CH ON T.CHUNK_ID = CH.ID WHERE 1=1
ORDER BY T.IDOther views prefixed with V_ are internal to slackdump and track unprocessed
threads during execution. Do not rely on them for analysis.
© rusq, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 of rusq/slackdump.
Open the folder on GitHubat commit 88e7c22
Slackdump Sqlite3 next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Slackdump Sqlite3 this skillrusq/slackdump | 2.8k | — | ~1.6k | Automated safety check: Pass | AGPL-3.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 5 repos | ~1.2k | Automated safety check: Pass | MIT | |
| ComposioComposioHQ/composio | 30k | 1 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Adding LLM MCP ToolsTriliumNext/Trilium | 38k | — | ~2.5k | Automated safety check: Pass | AGPL-3.0 | |
| Agent Memorytigerless-labs/agent-memory | 2.4k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Foremergenaw103/foremerge | 537 | — | ~2.4k | Automated safety check: Pass | Apache-2.0 |
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
ComposioHQ/composio
Route and complete Composio work across Composio For You and Composio Platform.
TriliumNext/Trilium
A skill your agent uses when adding, changing, or reviewing an LLM/MCP tool in Trilium (the defineTools definitions under packages/trilium-core/src/services/llm/tools/ —…
tigerless-labs/agent-memory
Read and write the shared long-term memory store. An agent skill from tigerless-labs/agent-memory.
naw103/foremerge
Coordinate parallel coding agents with Foremerge's local Git-compatible CLI and MCP server.
professorpalmer/Puppetmaster
Operates and supervises Puppetmaster, a multi-agent orchestrator, through its MCP tools or CLI, picking the right verb for edits, reviews, audits and long-running jobs.
rusq/slackdump
Prepare this repository for a release. An agent skill from rusq/slackdump.
rusq/slackdump
Collect the Slack conversation data from Slackdump Archive format.
rusq/slackdump
Explains the different Slackdump sources structure. An agent skill from rusq/slackdump.
Works with
Guidance for querying a Slackdump SQLite3 database directly via the sqlite3 CLI. Slackdump Sqlite3 is an agent skill from rusq/slackdump. Guidance for querying a Slackdump SQLite3 database directly via the sqlite3 CLI.
Run `npx skills add rusq/slackdump --skill slackdump-sqlite3 -a claude-code`. Or copy the skill folder (cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 in rusq/slackdump) into .claude/skills/slackdump-sqlite3 in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rusq/slackdump --skill slackdump-sqlite3 -a codex`. Or copy the skill folder (cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 in rusq/slackdump) into .agents/skills/slackdump-sqlite3 in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rusq/slackdump --skill slackdump-sqlite3 -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/slackdump-sqlite3, .gemini/skills/slackdump-sqlite3, .github/skills/slackdump-sqlite3 and .opencode/skills/slackdump-sqlite3 in your project.
SKILL.md names no scripts, command-line tools or credentials: Slackdump Sqlite3 is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Slackdump Sqlite3 is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Slackdump Sqlite3: MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), Composio (ComposioHQ/composio, 30k stars), Adding LLM MCP Tools (TriliumNext/Trilium, 38k stars) and Agent Memory (tigerless-labs/agent-memory, 2.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
rusq (a GitHub user) maintains it in rusq/slackdump, which has 2,811 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 3, 2026.
Source: rusq/slackdump on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.