Skip to content

trip2g

by trip2g · remote · no sign-in to list tools · v1.0.0 · published by GitHub user trip2g

Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.

Changes · 4

12 tools: 4 change things and 8 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http trip2g https://trip2g.com/_system/mcp

Findings

Matches of fixed checks, with the text they matched.

1 info

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

12 tools

Changes things 4Claude Code: ask
  • expandWalk a note's table of contents level by level (progressive disclosure).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Walk a note's table of contents level by level (progressive disclosure). Canonical call: expand(path=<result.note_path>, toc_path=[...]) — copy path verbatim from a search result's note_path field. Returns the direct children of a TOC node: omit toc_path (or pass []) for the top-level sections, or pass a toc_path to list that section's subsections. Each child has title, level, path, and has_children. A section with subsections lists them; a section without subsections is returned in full (what note_html gives for that toc_path, plus section_html in the payload), so no second call is needed to read a leaf. This cannot be turned off, and a client that wants only structure never triggers it: has_children on each listed child says where descending would turn into reading.
  • federated_expandWalk a remote note's table of contents level by level inside a connected knowledge base (progressive disclosure), same as expand.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Walk a remote note's table of contents level by level inside a connected knowledge base (progressive disclosure), same as expand. Canonical call: federated_expand(kb_id=..., path=<result.note_path>, toc_path=[...]). Omit toc_path for the top level, or pass a toc_path to list that node's subsections. A section with subsections lists them; a section without subsections is returned in full, as federated_note_html would return it — has_children on each listed child says where that happens.
  • instructionsFull tool reference for the trip2g documentation baseNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Full tool reference for the trip2g documentation base
  • wikiWiki Knowledge Base InstructionsNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Wiki Knowledge Base Instructions
Only reads 8Claude Code: allow
  • federated_assetGet one attachment of a remote note — a file, not text.1 finding

    Why it is in this group

    • The description's first verb is "get": a word for reading.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "...ch it with curl (the URL needs no other credential) and check the sha256. The file itself..."

      What this check looks for
    Description, as the server wrote it
    Get one attachment of a remote note — a file, not text. Canonical loop: federated_note_html(kb_id, path) -> for each name in its assets: federated_asset(kb_id, note_path=<that path>, name=<name>). Returns the asset's size and sha256 and a short-lived download URL on this server that streams the file from the remote base; fetch it with curl (the URL needs no other credential) and check the sha256. The file itself never comes back in the tool result. Only a directly connected base: kb_id without '/'.
  • federated_instructionsFetch the instructions/guidance for a federated knowledge base by kb_id (e.g.No findings

    Why it is in this group

    • The description's first verb is "fetch": a word for reading.
    Description, as the server wrote it
    Fetch the instructions/guidance for a federated knowledge base by kb_id (e.g. "philosophers/nietzsche") — read a base's own conventions before searching it. Nested bases are addressed with '/' and the call routes through each peer recursively.
  • federated_note_htmlRead a remote note inside a connected knowledge base.No findings

    Why it is in this group

    • The description's first verb is "read": a word for reading.
    Description, as the server wrote it
    Read a remote note inside a connected knowledge base. Canonical call, copying fields verbatim from a federated_search result: federated_search(kb_id="philosophers/<author>", query) -> federated_note_html(kb_id="philosophers/<author>", path=<result.note_path>) — the standard way to descend into a leaf corpus and read real content there, not hub cards. federated_note_html(kb_id=..., match_id=<match.match_id>) reads just the focused chunk around a hit. Only pass pid/note_id if you already copied that exact id from a result. path is a string like "concepts/x.md"; match_id is "p<pid>:c<chunk>"; a value like ":" or "/hub/goethe.md" is a PATH, not a note_id.
  • federated_similarFind remote notes similar to a known note reference inside a connected knowledge base.No findings

    Why it is in this group

    • The description's first verb is "find": a word for reading.
    Description, as the server wrote it
    Find remote notes similar to a known note reference inside a connected knowledge base. Preferred: path (a federated_search result's note_path field).
  • note_htmlRead a note.No findings

    Why it is in this group

    • The description's first verb is "read": a word for reading.
    Description, as the server wrote it
    Read a note. Canonical calls, copying fields verbatim from a search result: search(query) -> note_html(path=<result.note_path>) reads the whole note; search(query) -> note_html(match_id=<match.match_id>) reads just the focused chunk around a hit (cheaper, targeted); expand(path=<result.note_path>, toc_path=[...]) -> note_html(path=<result.note_path>, toc_path=[...]) reads one exact section. Only pass pid/note_id if you already copied that exact integer from a result's note_id field — never invent one. path is a string like "concepts/x.md"; match_id is "p<pid>:c<chunk>"; a value like ":" or "/hub/goethe.md" is a PATH, not a note_id.
  • similarFind related notes from a known note reference.No findings

    Why it is in this group

    • The description's first verb is "find": a word for reading.
    Description, as the server wrote it
    Find related notes from a known note reference. Preferred: path (a search result's note_path field). Use this after opening a promising note when you need nearby context.

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http trip2g https://trip2g.com/_system/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__trip2g__federated_asset",
      "mcp__trip2g__federated_instructions",
      "mcp__trip2g__federated_note_html",
      "mcp__trip2g__federated_search",
      "mcp__trip2g__federated_similar",
      "mcp__trip2g__note_html",
      "mcp__trip2g__search",
      "mcp__trip2g__similar"
    ],
    "ask": [
      "mcp__trip2g__expand",
      "mcp__trip2g__federated_expand",
      "mcp__trip2g__instructions",
      "mcp__trip2g__wiki"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as trip2g. Review it before you use it.