fossick-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GH_TOKEN | No | GitHub token for authentication. Alternatively, GITHUB_TOKEN or GITHUB_PERSONAL_ACCESS_TOKEN can be used. | |
| GITHUB_TOKEN | No | GitHub token for authentication. Alternatively, GH_TOKEN or GITHUB_PERSONAL_ACCESS_TOKEN can be used. | |
| GITHUB_PERSONAL_ACCESS_TOKEN | No | GitHub personal access token for authentication. Alternatively, GH_TOKEN or GITHUB_TOKEN can be used. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| find_symbolA | Goto-definition: find where a symbol is defined in one repo or across all of GitHub. |
| get_fileA | Read file content from one file in a GitHub repository. Returns full file with line numbers, supports line range slicing (start_line/end_line) and substring/regex match filtering with context lines. Truncates files over 500 lines unless a range or match is specified. Use after locating a file via search_code, find_symbol, or repo_tree. |
| list_tagsA | List tags or releases for one repository. Default mode returns lightweight tag names with commit SHAs. Release mode (releases=true) returns full release objects including tag name, title, changelog body, publish date, and attached assets. Use to check a library's freshness (is it actively maintained?), find the current version to pin against, or pick a specific release to read files at via get_file(ref=) or browse via repo_tree(ref=). |
| repo_treeA | View the file tree of a GitHub repository or subdirectory. Recursive listing with depth control (1-3 levels), glob pattern filtering (e.g. *.py), and optional file sizes. Automatically filters noise directories (node_modules, pycache, .venv, dist, etc.). Use to understand project layout and discover key files before reading them with get_file. |
| search_codeA | Search for code across all of GitHub (200M+ repos), or narrowed to one repo/org/path. Supports regex (/pattern/), tree-sitter symbol search (symbol:name), boolean operators (AND/OR/NOT), exact phrases, and code-search qualifiers: repo:, org:, user:, path:, language:, content:, symbol:, is:archived, is:fork, is:vendored, is:generated, size:, in:file, in:path, filename:, extension:. Convenience params repo, language, path are appended as qualifiers automatically. Use this to find real-world usage patterns (how do projects actually import and call library X?), discover who uses a library (search for its import/crate name across GitHub), or locate example code for a framework you're evaluating. NOT for finding where a symbol is defined (use find_symbol). IMPORTANT: GitHub's code-search endpoint does NOT support repository-level qualifiers like stars:, pushed:, forks:, created:, topic:, license:, archived: — GitHub silently matches them as literal file content, giving wrong results with no error. For popularity-filtered discovery, use |
| search_packagesA | Search for a package on PyPI or npm (not GitHub — does not use GitHub API or rate limits). PyPI: exact-match lookup returning version, description, license, homepage, and GitHub URL. npm: text search returning multiple results with links. Use for looking up package metadata and versions — chain with search_repos to explore the source repository. |
| search_reposA | Discover GitHub repositories — the go-to tool for finding real, maintained, coherent repos during a coding session. Optimized for "find reference implementations / prior art / learning material / small-but-quality gems in an ecosystem," NOT for "rank by raw popularity." Returns per-result: name, full description, topics, primary language, star count, last-push date, license, homepage, and archived status. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool has a distinct purpose: find_symbol finds definitions, get_file reads files, list_tags lists releases, repo_tree shows directory structure, search_code searches code, search_packages queries package registries, and search_repos discovers repositories. No overlap in functionality.
All tool names follow the verb_noun pattern with snake_case: find_symbol, get_file, list_tags, repo_tree, search_code, search_packages, search_repos. The naming is uniform and predictable.
With 7 tools, the set is well-scoped for a code exploration server. It covers the core tasks of finding, reading, searching, and browsing code and repositories without being bloated or sparse.
The tool surface is largely complete for read-only exploration: symbol lookup, file reading, directory browsing, tag listing, and three types of search (code, packages, repos). Missing are operations like viewing commit history or blaming, which are secondary to the server's focus.