Code Reference Optimizer MCP Server
# Code Reference Optimizer MCP Server
[](https://archestra.ai/mcp-catalog/fosterg4__mcpsaver)
[](https://www.npmjs.com/package/@fosterg4/mcpsaver)


An advanced MCP (Model Context Protocol) server that intelligently extracts minimal, relevant code context using AST parsing, analyzes code differences, and optimizes imports to dramatically reduce token usage for AI assistants.
## Key Features
- **Smart Context Extraction**: Uses AST parsing to identify and extract only relevant code sections
- **Multi-language Support**: TypeScript/JavaScript, Python, Go, Rust, Java, C++, and more
- **Intelligent Caching**: LRU cache with configurable persistence and customizable storage paths
- **Token Optimization**: Filters unnecessary code while maintaining semantic completeness
- **Diff Analysis**: Provides minimal, focused code differences with semantic understanding
- **Import Optimization**: Eliminates unused imports and suggests consolidation opportunities
- **Configurable**: Runtime configuration via tools with persistent settings
- **Simple Integration**: stdio-based server and optional HTTP server, easy to integrate with any MCP client
## Quick Start (STDIO)
- One-off (recommended):
```bash
npx -y @fosterg4/mcpsaver
```
You should see: `Code Reference Optimizer MCP server running on stdio`.
- Global (optional):
```bash
npm i -g @fosterg4/mcpsaver
mcpsaver
```
## HTTP Mode
Start the HTTP server on port 8081 (default):
```bash
npx -y @fosterg4/mcpsaver mcpsaver-http
# or after build
npm run start:http
```
Configure your MCP client to use the HTTP binary if supported, e.g.:
```json
{
"mcpServers": {
"mcpsaver": { "command": "mcpsaver-http", "env": { "PORT": "8081", "LOG_LEVEL": "info" } }
}
}
```
## Use with an MCP client
Add to your MCP client config (example `mcpServers.json`):
```json
{
"mcpServers": {
"mcpsaver": {
"command": "npx",
"args": ["-y", "@fosterg4/mcpsaver"],
"env": {}
}
}
}
```
## Available Tools
The server provides 7 powerful tools for code analysis and optimization:
### π `extract_code_context`
Extracts minimal, focused code context using AST parsing. Intelligently identifies relevant code sections, imports, and dependencies for specific symbols.
```json
{
"filePath": "path/to/file.ts",
"targetSymbols": ["myFunc", "MyClass"],
"includeImports": true,
"maxTokens": 1000
}
```
**Required**: `filePath` | **Optional**: `targetSymbols`, `includeImports`, `maxTokens`
### πΎ `get_cached_context`
Retrieves previously extracted and cached code context for fast access without re-parsing.
```json
{ "filePath": "path/to/file.ts", "cacheKey": "optional-key" }
```
**Required**: `filePath` | **Optional**: `cacheKey`
### π `analyze_code_diff`
Performs intelligent analysis of code differences with semantic understanding and minimal update suggestions.
```json
{
"filePath": "path/to/file.ts",
"oldContent": "export function a() { return 1 }",
"newContent": "export function a() { return 2 }"
}
```
**Required**: `filePath`, `oldContent`, `newContent`
### π§Ή `optimize_imports`
Analyzes and optimizes import statements to eliminate redundancy and improve code efficiency.
```json
{ "filePath": "path/to/file.ts", "usedSymbols": ["useEffect", "useMemo"] }
```
**Required**: `filePath` | **Optional**: `usedSymbols`
### βοΈ `get_config`
Retrieves current configuration settings for cache behavior, extraction parameters, and more.
```json
{ "section": "cache" }
```
**Optional**: `section` (cache, extraction, imports, diff, performance, languages, logging, security)
### π§ `update_config`
Updates configuration settings including cache policies, token limits, and performance thresholds.
```json
{
"config": {
"cache": { "enablePersistence": true, "persistencePath": "/custom/cache/path" },
"extraction": { "maxTokens": 2000 }
}
}
```
**Required**: `config`
### π `reset_config`
Resets all configuration settings to default values.
```json
{}
```
**No parameters required**
Note: Tool results are returned as MCP content with a single `text` item containing JSON of the result, e.g.
```json
{
"content": [{ "type": "text", "text": "{\n \"...\": true\n}" }]
}
```
## Additional MCP Capabilities
- **Prompts**: listed but empty; `get_prompt` returns MethodNotFound.
- **Resources**: listed but empty; reading a resource returns MethodNotFound.
- **Roots**: exposes the current working directory as a single root `workspace`.
- **Sampling**: stubbed; `sampling/createMessage` returns MethodNotFound.
## Examples
See `docs/EXAMPLES.md` for endβtoβend request examples of each tool.
## Configuration
- Call `get_config`, `update_config`, `reset_config` to manage runtime settings.
- You may also set environment variables via your MCP client if supported (e.g., `LOG_LEVEL`).
### Structured Logging
The server uses a lightweight structured logger. Configure via `get_config`/`update_config` or env:
- Level: `config.logging.level` (trace|debug|info|warn|error)
- File logging: `config.logging.enableFileLogging` and `config.logging.logPath`
## Development
```bash
npm ci
npm run build
npm start # run built server (stdio)
npm run start:http # run built server (http)
npm run dev # tsc --watch
npm test
npm run lint
npm run type-check
```
## Publishing (maintainers)
```bash
npm login
npm run clean && npm run build
npm version patch
npm publish --access public
```
## License
MIT β see `LICENSE`.TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose with no ambiguity: analyze_code_diff handles code version comparisons, extract_code_context and get_cached_context manage code context retrieval (one for extraction, one for caching), get_config, update_config, and reset_config handle configuration operations, and optimize_imports focuses on import optimization. The descriptions clearly differentiate their functions, making misselection unlikely.
All tools follow a consistent verb_noun pattern using snake_case, such as analyze_code_diff, extract_code_context, and optimize_imports. This uniformity makes the tool set predictable and easy to understand, with no deviations in naming conventions.
With 7 tools, the count is well-scoped for a code reference optimizer server. Each tool serves a specific role in code analysis, context management, and configuration, with no apparent bloat or missing essential functions, fitting the server's purpose appropriately.
The tool set covers core areas like code analysis, context extraction/caching, and configuration management, providing good lifecycle coverage. A minor gap exists in direct code editing or refactoring tools beyond imports, but agents can work around this using the provided tools for most optimization tasks.