{
  "markdown": "# SlimContext MCP Server\n\nA Model Context Protocol (MCP) server that wraps the [SlimContext](https://www.npmjs.com/package/slimcontext) library, providing AI chat history compression tools for MCP-compatible clients.\n\n## Overview\n\nSlimContext MCP Server exposes two powerful compression strategies as MCP tools:\n\n1. **`trim_messages`** - Token-based compression that removes oldest messages when exceeding token thresholds\n2. **`summarize_messages`** - AI-powered compression using OpenAI to create concise summaries\n\n## Installation\n\n```bash\nnpm install -g slimcontext-mcp-server\n# or\npnpm add -g slimcontext-mcp-server\n```\n\n## Development\n\n```bash\n# Clone and setup\ngit clone <repository>\ncd slimcontext-mcp-server\npnpm install\n\n# Build\npnpm build\n\n# Run in development\npnpm dev\n\n# Type checking\npnpm typecheck\n```\n\n## Configuration\n\n### MCP Client Setup\n\nAdd to your MCP client configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"slimcontext\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"slimcontext-mcp-server\"]\n    }\n  }\n}\n```\n\n### Environment Variables\n\n- `OPENAI_API_KEY`: OpenAI API key for summarization (optional, can be passed as tool parameter)\n\n## Tools\n\n### trim_messages\n\nCompresses chat history using token-based trimming strategy.\n\n**Parameters:**\n\n- `messages` (required): Array of chat messages\n- `maxModelTokens` (optional): Maximum model token context window (default: 8192)\n- `thresholdPercent` (optional): Percentage threshold to trigger compression 0-1 (default: 0.7)\n- `minRecentMessages` (optional): Minimum recent messages to preserve (default: 2)\n\n**Example:**\n\n```json\n{\n  \"messages\": [\n    { \"role\": \"system\", \"content\": \"You are a helpful assistant.\" },\n    { \"role\": \"user\", \"content\": \"Hello!\" },\n    { \"role\": \"assistant\", \"content\": \"Hi there! How can I help you today?\" },\n    { \"role\": \"user\", \"content\": \"Tell me about AI.\" }\n  ],\n  \"maxModelTokens\": 4000,\n  \"thresholdPercent\": 0.8,\n  \"minRecentMessages\": 2\n}\n```\n\n**Response:**\n\n```json\n{\n  \"success\": true,\n  \"original_message_count\": 4,\n  \"compressed_message_count\": 3,\n  \"messages_removed\": 1,\n  \"compression_ratio\": 0.75,\n  \"compressed_messages\": [\n    { \"role\": \"system\", \"content\": \"You are a helpful assistant.\" },\n    { \"role\": \"assistant\", \"content\": \"Hi there! How can I help you today?\" },\n    { \"role\": \"user\", \"content\": \"Tell me about AI.\" }\n  ]\n}\n```\n\n### summarize_messages\n\nCompresses chat history using AI-powered summarization strategy.\n\n**Parameters:**\n\n- `messages` (required): Array of chat messages\n- `maxModelTokens` (optional): Maximum model token context window (default: 8192)\n- `thresholdPercent` (optional): Percentage threshold to trigger compression 0-1 (default: 0.7)\n- `minRecentMessages` (optional): Minimum recent messages to preserve (default: 4)\n- `openaiApiKey` (optional): OpenAI API key (can also use OPENAI_API_KEY env var)\n- `openaiModel` (optional): OpenAI model for summarization (default: 'gpt-4o-mini')\n- `customPrompt` (optional): Custom summarization prompt\n\n**Example:**\n\n```json\n{\n  \"messages\": [\n    { \"role\": \"system\", \"content\": \"You are a helpful assistant.\" },\n    { \"role\": \"user\", \"content\": \"I want to build a web scraper.\" },\n    {\n      \"role\": \"assistant\",\n      \"content\": \"I can help you build a web scraper! What programming language would you prefer?\"\n    },\n    { \"role\": \"user\", \"content\": \"Python please.\" },\n    {\n      \"role\": \"assistant\",\n      \"content\": \"Great choice! For Python web scraping, I recommend using requests and BeautifulSoup...\"\n    },\n    { \"role\": \"user\", \"content\": \"Can you show me a simple example?\" }\n  ],\n  \"maxModelTokens\": 4000,\n  \"thresholdPercent\": 0.6,\n  \"minRecentMessages\": 2,\n  \"openaiModel\": \"gpt-4o-mini\"\n}\n```\n\n**Response:**\n\n```json\n{\n  \"success\": true,\n  \"original_message_count\": 6,\n  \"compressed_message_count\": 4,\n  \"messages_removed\": 2,\n  \"summary_generated\": true,\n  \"compression_ratio\": 0.67,\n  \"compressed_messages\": [\n    { \"role\": \"system\", \"content\": \"You are a helpful assistant.\" },\n    {\n      \"role\": \"system\",\n      \"content\": \"The user expressed interest in building a web scraper and requested help with Python. The assistant recommended using requests and BeautifulSoup libraries for Python web scraping.\"\n    },\n    {\n      \"role\": \"assistant\",\n      \"content\": \"Great choice! For Python web scraping, I recommend using requests and BeautifulSoup...\"\n    },\n    { \"role\": \"user\", \"content\": \"Can you show me a simple example?\" }\n  ]\n}\n```\n\n## Message Format\n\nBoth tools expect messages in SlimContext format:\n\n```typescript\ninterface SlimContextMessage {\n  role: 'system' | 'user' | 'assistant' | 'tool' | 'human';\n  content: string;\n}\n```\n\n## Error Handling\n\nAll tools return structured error responses:\n\n```json\n{\n  \"success\": false,\n  \"error\": \"Error message description\",\n  \"error_type\": \"SlimContextError\" | \"OpenAIError\" | \"UnknownError\"\n}\n```\n\nCommon error scenarios:\n\n- Missing OpenAI API key for summarization\n- Invalid message format\n- OpenAI API rate limits or errors\n- Invalid parameter values\n\n## Token Estimation\n\nSlimContext uses a simple heuristic for token estimation: `Math.ceil(content.length / 4) + 2`. This provides a reasonable approximation for most use cases. For more accurate token counting, you would need to implement a custom token estimator in your client application.\n\n## Compression Strategies\n\n### Trimming Strategy\n\n- Preserves all system messages\n- Preserves the most recent N messages\n- Removes oldest non-system messages until under token threshold\n- Fast and deterministic\n- No external API dependencies\n\n### Summarization Strategy\n\n- Preserves all system messages\n- Preserves the most recent N messages\n- Summarizes middle portion of conversation using AI\n- Creates contextually rich summaries\n- Requires OpenAI API access\n\n## License\n\nMIT\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests for new functionality\n5. Submit a pull request\n\n## Related\n\n- [SlimContext](https://www.npmjs.com/package/slimcontext) - The underlying compression library\n- [Model Context Protocol](https://modelcontextprotocol.io/) - The protocol specification\n- [MCP SDK](https://github.com/modelcontextprotocol/typescript-sdk) - TypeScript SDK for MCP\n",
  "bytes": 6238,
  "sha": "0b47ed9ed037e34c64ca1626405bc350b3fc1ae90723e9089046f0ec707251af",
  "repo_slug": "agentailor/slimcontext-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_agentailor_slimcontext_mcp_ser_938b05f8/readme"
}