trackmcp
Back to directory
lostintangent

gistpad-mcp

View on GitHub

๐Ÿ““ An MCP server for managing your personal knowledge, daily notes, and re-usable prompts via GitHub Gists TypeScript-based implementation.

166 stars TypeScriptAI & Machine Learning Updated Nov 1, 2025
gistsmcpmcp-servernotetakingpkm

Documentation

๐Ÿ““ GistPad MCP

An MCP server for managing and sharing your personal knowledge, daily notes, and reuseable prompts via GitHub Gists. It's a companion to the GistPad VS Code extension and GistPad.dev (for web/mobile), which allows you to access and edit your gists from any MCP-enabled AI product (e.g. GitHub Copilot, Claude Desktop).

๐Ÿƒ Getting started

1. Using VS Code?

1. Install the GistPad extension and then reload VS Code

> _Note: This requires VS Code 1.101.0+, so if you're on an older version, it's time to upgrade!_

1. Open the `GistPad` tab and sign-in with your GitHub account. After that, you can begin using GistPad from Copilot chat (in `Agent` mode) without doing any extra setup or token management ๐Ÿ’ช

1. Other MCP clients...

1. Generate a personal access token that includes _only_ the `gist` scope: https://github.com/settings/tokens/new

1. Add the equivalent of the following to your client's MCP config file (or via an "Add MCP server" GUI/TUI):

json
{
        "mcpServers": {
          "gistpad": {
            "command": "npx",
            "args": ["-y", "gistpad-mcp"],
            "env": {
              "GITHUB_TOKEN": ""
            }
          }
        }
      }

Once your client it setup, you can start having fun with gists + MCP! ๐Ÿฅณ For example, try things like...

1. Exploring content

    1. Creating content

      1. Daily todos

        1. Collaboration

          1. Gist organization

            1. Reusable prompts

              ๐Ÿ› ๏ธ Included tools

              Gist management

              • `list_gists` - List all of your gists (excluding daily notes and archived gists).
              • `get_gist` - Get the contents of a gist by ID.
              • `create_gist` - Create a new gist with a specified description and initial file contents.
              • `delete_gist` - Delete a gist by ID.
              • `update_gist_description` - Update a gist's description by ID.
              • `duplicate_gist` - Create a copy of an existing gist with all its files.
              • `refresh_gists` - Reload your gist lists, ignoring any cached data.

              File management

              • `update_gist_file` - Update the contents of a specific file in a gist.
              • `add_gist_file` - Add a new file to an existing gist.
              • `delete_gist_file` - Delete a file from a gist.
              • `rename_gist_file` - Rename an existing file within a gist.
              • `edit_gist_file` - Make targeted find-and-replace edits to a gist file.

              Comments

              • `list_gist_comments` - List all comments for a specified gist.
              • `add_gist_comment` - Add a new comment to a gist.
              • `edit_gist_comment` - Update the content of an existing comment.
              • `delete_gist_comment` - Delete a comment from a gist.

              ๐Ÿ› ๏ธ Optional tools

              The following tool sets are disabled by default to keep the tool surface minimal. Enable them by passing the corresponding CLI flag.

              Daily notes (`--daily`)

              • `get_todays_note` - Get or create today's daily note.
              • `update_todays_note` - Update the content of today's daily note.
              • `list_daily_notes` - List all of your daily notes.
              • `get_daily_note` - Get the contents of a specific daily note by date.
              • `delete_daily_note` - Delete a specific daily note by date.

              Starring (`--starred`)

              • `list_starred_gists` - List all your starred gists.
              • `star_gist` - Star a specific gist by ID.
              • `unstar_gist` - Unstar a starred gist by ID.

              Archiving (`--archived`)

              • `list_archived_gists` - List all of your archived gists.
              • `archive_gist` - Archive one of your gists.
              • `unarchive_gist` - Unarchive an archived gist.

              Prompts (`--prompts`)

              • `list_gist_prompts` - List the prompts in your prompts collection.
              • `add_gist_prompt` - Add a new prompt to your prompts collection.
              • `delete_gist_prompt` - Delete a prompt from your collection.

              ๐Ÿ“ Included resources

              In addition to the above tools, the GistPad MCP server also exposes your gists as resources (using the `gist:///` URI scheme), which allows clients to read them without requiring tool execution.

              When you add/delete/duplicate a gist, or change a gist's description, then a notification will be provided to MCP clients, indicating that the list of resources have changed. And if your MCP client supports resource subscriptions, then you can subscribe to a specific gist and get notified when it's updated.

              Additionally, for MCP clients that support resource templates, GistPad also exposes a resource at `gist:///{gistId}/comments`, which allows querying the comments for a gist (without needing to execute the `list_gist_comments` tool).

              Resource configuration

              If you'd like to expose either your archived gists, starred gists, and/or daily notes as resources, then simply update your MCP server config to pass the `--archived`, `--starred`, and/or `--daily` flags to the `gistpad-mcp` CLI.

              ๐Ÿ’ฌ Reusable prompts

              GistPad allows you to create and manage parameterized/reusable prompts that are stored as markdown files in a gist. You can manage prompts using the `add_prompt` and `delete_prompt` tool, by simply asking your MCP client to create/delete a prompt, with the specified contents/arguments you want.

              Behind the scenes, prompts are stored as markdown files in a gist called `๐Ÿ’ฌ Prompts` (which is automatically created by the `add_prompt` tool). The prompt files include their prompt as the body, and optionally, a description and arguments using front-matter. And if the prompt makes use of arguments, the body of the prompt should include `{{argument}}` placeholders, which will be replaced when the MCP client retrieves it.

              ๐Ÿ’ป CLI Reference

              The `gistpad-mcp` CLI accepts the following optional flags:

              • `--archived` - Enable archive tools and include archived gists in resources
              • `--starred` - Enable starring tools and include starred gists in resources
              • `--daily` - Enable daily note tools and include daily notes in resources
              • `--prompts` - Enable prompt tools and MCP prompt handlers
              • `--markdown` - Filter gists to only those composed of Markdown files

              ๐Ÿงฐ Troubleshooting

              • Not seeing a gist in your list? The GistPad MCP server caches your gist list and updates it 1) anytime you make a change through the MCP server, or 2) every hour. However, if you add/edit/delete a gist using an external client, you may need to tell GistPad MCP to refresh itself (assuming it hasn't performed its hourly refresh yet). You can do this by triggering the `refresh_gists` tool (e.g. running `#refresh_gists` in VS Code Copilot chat).

              Frequently asked questions

              What is gistpad-mcp?

              gistpad-mcp is ๐Ÿ““ An MCP server for managing your personal knowledge, daily notes, and re-usable prompts via GitHub Gists TypeScript-based implementation.

              How do I install gistpad-mcp?

              Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

              Is gistpad-mcp open source?

              Yes โ€” it is hosted on GitHub at https://github.com/lostintangent/gistpad-mcp and has 166 stars.

              Related MCP tools

              Run your own MCP server? See who uses it and what to fix.

              Measure it with TrackMCP