Sherlog MCP

Sherlog MCP

Provides persistent IPython shell sessions per conversation with DataFrame-centric architecture, enabling stateful data analysis, CLI tool execution, and integration of external MCP servers within the same workspace context.

Category
访问服务器

README

Sherlog Logo

Sherlog Log AI MCP

A powerful Model Context Protocol (MCP) server that provides a persistent IPython shell per session. The server only exposes a limited number of tools and at the core of it just exposes the following 2 -

  1. call_cli
  2. execute_python_code

And the rest of the tools are more for supporting the LLM to write the code or call the appropriate cli to complete the task. There are some tools for code retrieval based on tree sitter but thats pretty much it.

For example, installing packages or installing cli. Or doing introspection of variables in the ipython shell.

The server also supports adding external mcp servers. The idea here is you can run mcp servers inside the shell that allows you to persist results in the shell with variables and results etc.

One of the primary things I have noticed is that LLMs mess up when provided with a lot of tools and also as is quite evident by now. There are multiple articles and videos (written and shared by people way more qualified than me) and they main theme across them is the problems with tools overload and context limitation.

This server is my attempt at "solving" that problem.

How you ask ?

Note: The core of this approach is:

  1. All tool calls are persisted to a variable in the shell and the LLM would then write code to inspect the variable, slice/dice and get the required part out of a "gigantic" payload. My idea was similar to when us engineers work with large data we get them into dataframes and then slice/dice to get the required part out.
  2. CLI calls are composable and that helps the LLM to get only the required content

Both are ways of not polluting the context with useless info.

Overview

Sherlog MCP Server transforms Claude Desktop into a stateful data analysis powerhouse by providing:

  • Session-Aware IPython Shells: Isolated workspaces per session with automatic persistence
  • DataFrame-Centric Architecture: Every operation returns DataFrames, creating a unified data model
  • Multi-Session Support: Handle up to 4 concurrent sessions with automatic lifecycle management
  • MCP Proxy: Seamlessly integrates any external MCP server, executing all operations within the same IPython context

Think of it as giving Claude a persistent Python notebook that maintains separate workspaces for different conversations, where every piece of data is immediately available for the next operation.

Architecture & Design

Sherlog MCP Server supports different deployment scenarios through specialized Docker containers:

Container Variants

Vanilla Container

A lightweight, general-purpose environment optimized for data analysis and development workflows.

Pre-installed Tools:

  • GitHub CLI (gh) - Complete GitHub integration for repository management, issues, PRs, and workflows
  • Python Ecosystem - Full scientific computing stack (pandas, numpy, matplotlib, etc.)
  • System Utilities - Essential command-line tools for file operations and system management

Best For: Data analysis, web scraping, API integrations, general development tasks

Android Development Container

A specialized environment for Android development and testing workflows.

Pre-installed Tools:

  • Android SDK & Build Tools - Complete Android development environment
  • Java Development Kit (JDK) - Required Java runtime and development tools
  • GitHub CLI (gh) - Version control and repository management
  • BrowserStack CLI - Real device testing and debugging capabilities
  • ADB & Fastboot - Android device communication tools

Best For: Android app development, device testing, mobile automation, CI/CD pipelines

Google OAuth Integration

Sherlog MCP Server includes built-in Google OAuth 2.0 support for accessing Google Workspace services (Gmail, Drive, Calendar) directly within IPython sessions. OAuth tokens are securely stored with encryption and automatically refreshed as needed.

Configure with GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET environment variables. When running with HTTP transport, OAuth endpoints are available at /auth/google/* for authentication flow.

Design Principles

  • Environment Isolation: Each container provides a complete, reproducible environment
  • Tool Integration: All CLI tools are accessible through the unified call_cli interface
  • Persistent State: Session data persists across container restarts
  • Extensibility: Easy to add new tools or create custom container variants

Installation

Prerequisites

  • Docker Desktop

Remote Connection Support

Sherlog MCP supports connecting from remote Claude instances via HTTP transport. See Remote Connection Guide for detailed setup instructions.

Configuration

Core Settings

# Session Management
export MCP_AUTO_RESET_THRESHOLD=200     # Operations before auto-cleanup (default: 200)
export MCP_AUTO_RESET_ENABLED=true      # Enable automatic memory management
export MCP_MAX_OUTPUT_SIZE=50000        # Max output size per buffer (default: 50KB)
export MCP_MAX_SESSIONS=4               # Maximum concurrent sessions (default: 4)

# Logging
export LOG_LEVEL=INFO

External MCP Servers

Connect any MCP server to execute within the IPython workspace:

export EXTERNAL_MCPS_JSON='{
  "filesystem": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
  },
  "postgres": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-postgres"],
    "env": {
      "DATABASE_URL": "$DATABASE_URL"
    }
  }
}'

External MCP Integration

While Sherlog MCP includes many tools natively, you can connect any MCP server to extend functionality. External tools are automatically integrated into the IPython workspace:

How It Works

  1. External tools are prefixed: external_[server]_[tool]
  2. Results automatically convert to DataFrames
  3. Full access to the same IPython namespace

Adding External MCPs

"-e", "EXTERNAL_MCPS_JSON={\"postgres\":{\"command\":\"npx\",\"args\":[\"-y\",\"@modelcontextprotocol/server-postgres\"],\"env\":{\"DATABASE_URL\":\"$DATABASE_URL\"}}}"

Railway Deployment

This MCP server is designed to be deployed on Railway with persistent session storage.

Persistent Sessions

The server automatically persists IPython shell sessions across container restarts using:

  • Session State: Individual session files stored in /app/data/sessions/
  • Session Metadata: Tracked in session_metadata.json for session timing and state
  • Active Session Registry: Maintained in session_registry.json to restore shells on startup

Railway Volume Configuration

When deploying to Railway, the /app/data directory is automatically persisted through Railway's persistent storage. This ensures that:

  • User sessions survive container restarts
  • IPython shell state (variables, imports, etc.) is maintained
  • Session metadata persists for proper session management

No additional configuration is needed for Railway deployment - the persistent volume is automatically mounted.

Architecture

Claude Desktop
     ↓
Sherlog MCP Server (http)
     ↓
Session Middleware (manages shells)
     ↓
IPython Shells (one per session)
     ├── Built-in Tools (return DataFrames)
     ├── External MCP Tools (via proxy)
     └── User Code (execute_python_code)
     └── User CLI (call_cli)

Advanced Usage

Working with External MCPs

External MCP tools integrate seamlessly:

  1. Results automatically convert to DataFrames
  2. Stored in IPython namespace with tool name
  3. Available for subsequent operations

Example flow:

  • PostgreSQL MCP queries database → result stored as DataFrame
  • LogAI tools analyze the data → create new DataFrames
  • Custom Python code combines results → final analysis

License

Apache License 2.0 - see LICENSE file for details.

Talks and articles that inspired me

Armin's article How to fix your context MCPs are Boring - Recommended using eval as the only tool Alita paper - This paper kind of influenced me as well

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选