agentleFS
komlukkomluk/scaffolding/skills/mcp-tools/SKILL.md

mcp-tools

Skill16 starsChanged 5 days agoMITView on GitHub

MCP tool decision tree and MCP-first fallback strategy. TRIGGER when: choosing whether to use an MCP tool versus a built-in, or an MCP tool is available for a task. SKIP: semantic-memory MCP usage specifically (use semantic-memory-mcp).

3 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

2 rules. 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    No MCP tool matches? Use built-in tools (Bash, Grep, WebSearch, etc.).

    line 12
  2. Very specific:

    Use search_context for documents and notes, specs, conversation transcripts and Gitea issues/PRs/commits.

    line 62

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

MCP Tools Decision Tree

Priority Order

  1. Does an MCP tool exist for this operation? Use it first.
  2. Did the MCP tool fail (auth missing, plugin unavailable)? Fall back to built-in.
  3. No MCP tool matches? Use built-in tools (Bash, Grep, WebSearch, etc.).

MCP Plugin Quick Reference

PluginTransportKey ToolsAgents
context7stdiomcp__context7__resolve-library-id, mcp__context7__get-library-docsresearcher, developer
playwrightstdiomcp__playwright__browser_navigate, mcp__playwright__browser_screenshotdeveloper, debugger
chrome-devtoolsstdiomcp__chrome-devtools__*developer, debugger
eslintstdiomcp__eslint__*developer, reviewer
sonarqubedockermcp__sonarqube__*developer, reviewer
sequential-thinkingstdiomcp__sequential-thinking__*architect, debugger
postgres-mcpstdiomcp__postgres-mcp__*developer, optimizer
redis-mcpstdiomcp__redis-mcp__*developer, devops, debugger
dockerstdiomcp__docker__*devops
cronstdiomcp__cron__*devops
ssh-mcpstdiomcp__ssh-mcp__*devops
githubhttpmcp__github__*gitops, architect
google-sheetsstdiomcp__google-sheets__*researcher, tech-writer
slackssemcp__slack__*tech-writer
asanassemcp__asana__*architect
supabasehttpmcp__supabase__*optimizer
firebasestdiomcp__firebase__*devops, optimizer
memorystdio13 tools across search/store/notes/ingest/session tiers (see below)tiered — see Access Control

Semantic Memory MCP

  • Transport: stdio (Python, venv/bin/python -m mcp_servers.semantic_memory)
  • Source: MCP servers in your backend directory (internal, built on fastmcp)
  • Auth: DATABASE_URL (PostgreSQL connection string), SEMANTIC_MEMORY_ENABLED=true
  • Config: .mcp.json at project root

Tools (13 total)

ToolPurposeParameters
search_contextSearch ingested context chunks (Qdrant hybrid retrieval). Returns doc_id, source, kind, title, date, session_id, content, score (relative rank, not a probability)query (required), corpus (homelab/platform/projects or a Gitea repo name), path (exact doc path in corpus), source_type (markdown/gitea), kind (note/spec/issue/pr/commit), session_id, top_k
semantic_searchSearch memories by similarityquery (required), project_id, agent_name, top_k, threshold
semantic_recallRecall relevant memories as markdowncontext (required), agent_name, project_id, top_k
semantic_storeStore a new memory with embeddingcontent (required), agent_name (required), project_id, conversation_id, task_id, tags, content_type
store_notePersist a note documentcorpus, relative_path, content (see notes-tier agents)
read_noteRead a note documentcorpus, relative_path
list_notesList note documentscorpus
trigger_ingestQueue ONE document (corpus + relative_path) for immediate re-indexing so a note just written via store_note becomes searchable in seconds instead of up to 15 minutes. Path-scoped only — cannot trigger a full backfill. Returns once queued; does not wait for indexing to finish (~3s to become searchable). Only useful to agents that also have store_note — otherwise you'd be re-indexing someone else's file.corpus (required), relative_path (required)
list_sessionsList memory sessions (catalog)—
get_sessionGet a session's detailssession_id
semantic_listList stored memories (catalog)project_id
semantic_deleteDelete a memorymemory_id (granted to no agent)
archive_sessionArchive a sessionsession_id (granted to no agent)

Use search_context for documents and notes, specs, conversation transcripts and Gitea issues/PRs/commits; use semantic_search for short distilled memories.

Access Control

TierToolsAgents
Write (search/recall/store)search_context, semantic_search, semantic_recall, semantic_storedeveloper, architect, debugger, analyst, researcher, reviewer, optimizer, tech-writer
Read-onlysearch_context, semantic_search, semantic_recalldevops, gitops, mcp-builder, prompt-engineer
Notesstore_note, read_note, list_notesarchitect, researcher, tech-writer
Ingest triggertrigger_ingestarchitect, researcher, tech-writer — narrow grant, restricted to the agents that also hold store_note; broader access would invite wasted LLM context-gen calls re-indexing files the caller didn't write
Session cataloglist_sessions, get_session, semantic_listcoordinator
Delete/archivesemantic_delete, archive_sessionnobody

corpus (top-level NFS share directory: homelab, platform, projects) and project_id (scaffold:<hash>, one per repo) are different axes — corpus scopes the notes/ingest tools above, project_id scopes the semantic_* (mem0) tools. Don't pass one where the other is expected.

The tools: frontmatter of each agent is authoritative for grants. For detailed usage guidance (when to search, when to store, quality gates), see the semantic-memory-mcp skill.

Fallback Strategy

OperationMCP Tool (Priority)Fallback
Library docs lookupcontext7WebSearch
UI verificationplaywrightManual browser check
Code qualitysonarqubepython3 devops/sonarqube.py via Bash
Lintingeslintnpx eslint via Bash
Database querypostgres-mcppsql via Bash
Cache inspectionredis-mcpredis-cli via Bash
Container opsdockerdocker via Bash
Git operationsgithubgh CLI via Bash
Memory searchmemoryFile-based agent-memory
Remote serverssh-mcpssh via Bash

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.