golestan_code_mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| search_codeA | Find code by what it does or by name: "how are requests routed?", "where are sessions saved?", "url_for". Use this first when you do not yet know which symbol to look at. If you already know the name, use get_symbol to read it, find_callers for its call sites, or impact_of for what a change would affect. Returns up to limit hits (default 10), best first. Each hit has the repository, path, symbol name, kind, language, line range, a snippet of the symbol's opening lines, and the scores behind its rank: the score, the relevance (the score before feedback), the feedback boost, the keyword rank and the semantic rank (null when that side did not find it). The feedback field is the boost from earlier sessions marking the result used: at most 0.2 (20 percent), fading over 30 days; relevance is the score before it. Keyword and semantic search are fused, and the definitions of an exact identifier come first. A hit of kind page is a wiki page about a whole module: its name is the page name, its path is the module's directory, its line range is null and its state says whether it is fresh or stale; read it with read_wiki. A hit of kind fact is something an earlier session worked out about the code at its path; recall lists all of them. Next step: call get_symbol with a hit's name to read its full source, or read_wiki with a page hit's name. |
| get_symbolA | Read the full source of a named definition (function, method, class, type) when you know its name, for example from a search_code hit. Use this instead of search_code when the name is known, and instead of opening files: it returns the source exactly as it was indexed. A bare name returns every definition with that name, each labeled with its qualified name; pass a qualified name or a repo to narrow. Returns up to 5 matches, each with its qualified name, kind, repository, path, line range and source. A source longer than 400 lines is cut there and marked cut, and its full line range is still given. total is the number of matches and truncated is true when more than 5 matched. Unparsed files indexed as line windows have no names and are not found here; use search_code for them. |
| find_callersA | Who calls this? Lists every call to the definitions matching name: the calling symbol, its kind, the repository, path and line of the call, and which definition is called. Use it before changing a function's signature or behavior, to see its direct call sites. For everything a change could reach through chains of calls, use impact_of; for what this symbol itself calls, use find_callees. Calls come from the parse tree, so comments, docstrings and strings never count. A call at module level has kind file and name (module). At most 200 rows; truncated is true when more exist. Next step: get_symbol on a caller to read it. |
| find_calleesA | What does this call? Lists the indexed symbols called from the body of each definition matching name, with the line of each call and where the called symbol is defined (repository, path, line range). Use it to follow what a function does one level down; for who calls it, use find_callers. Calls into code that is not indexed, such as the standard library or dependencies, are not listed. At most 200 rows; truncated is true when more exist. Next step: get_symbol on a callee to read it. |
| impact_ofA | What could break if I change this? Lists every symbol that reaches the definitions matching name through calls in at most depth hops, once each at its shortest distance (hops), nearest first, with the repository, path and line range. Use it to gauge the reach of a change; for just the direct call sites and their lines, use find_callers. At most 200 rows; truncated is true when more exist. Next step: get_symbol on the nearest symbols to see how they use it. |
| read_wikiA | What does this module do? Reads the tool's wiki page about a module (a directory of indexed code): its purpose, its key symbols with one line each, the modules it depends on and the modules that use it. Use it when a question is about a module as a whole rather than one function, or after search_code returns a hit of kind page. Pass page to read one page; it returns the text, whether it is fresh or stale (and what made it stale), when and by what it was compiled, and its citations, each with the repository, path and line range of the symbol or file it names. Omit page to list the pages, optionally for one repo, with each page's name, state and first purpose line. A stale page describes code that has changed since; check its citations. Next step: get_symbol on a key symbol to read its source. |
| list_repositoriesA | Which codebases can I ask about? Lists the registered repositories with their paths and how many files and symbols each holds. Use it to learn the valid repo values for the other tools, or after a repo was refused. A repository with 0 files is registered but not indexed yet. |
| recallA | Call this at the start of a session, and before searching, to load what earlier sessions already worked out about a codebase. Returns the stored facts, fresh first and most confident first, or most related to topic when one is given, and the most recent tool calls. Each fact has its subject (a symbol or wiki page), its text, a confidence from 0 to 1, whether it is fresh or stale (and why), what wrote its text (a configured model or the template distiller), the IDs of the runs it was distilled from, and the repository, path and line range of the code it describes. A stale fact describes code that has changed since; check it with get_symbol before relying on it. Facts are distilled from earlier calls by ccctx memory consolidate and after every ingestion. Next step: get_symbol on a fact's subject to read its source, or search_code for what recall does not cover. |
| mark_usedA | Tell the server a result helped: call this for each search hit you cite in your answer or rely on. Pass the hit's repo, path and name exactly as search_code returned them. Results that clients mark get a small, capped boost in later searches, and the boost fades over 30 days. Reading a hit with get_symbol or read_wiki already counts as a lighter use, so mark only what you actually used. |
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 9 tools
Each tool has a sharply distinct role: search by description, read by known name, read a module wiki page, direct callers vs callees, transitive impact, repository listing, session memory recall, and feedback marking. The descriptions explicitly cross-reference the neighbours (find_callers vs impact_of vs find_callees; search_code vs get_symbol) and state when to prefer each, eliminating overlap.
Most tools follow a verb_noun pattern (search_code, get_symbol, find_callers, read_wiki, list_repositories, mark_used). A few deviate: impact_of is noun/prepositional and recall is a bare verb, which is slightly inconsistent but still readable and unambiguous.
Nine tools sit comfortably in the well-scoped 3-15 range. Each maps to a distinct step in a code-investigation workflow (discover repo, search, read, navigate calls, gauge impact, consult/write memory), none feels redundant.
Covers the core lifecycle well: repository discovery, search, symbol/source reading, wiki pages, forward and backward call navigation, transitive impact, plus memory recall and feedback. Minor gaps exist—no way to enumerate symbols within a file or module, and no explicit tool to write/record a new fact (facts are distilled automatically), but agents can work around these.