Pharo NeoConsole
Evaluate Pharo Smalltalk expressions and get system information via a local NeoConsole server.
pharo-nc-mcp-server
A local MCP server to evaluate Pharo Smalltalk expressions and get system information via NeoConsole.
Prerequisites
- Python 3.10 or later
- uv package manager
- Pharo with NeoConsole installed
Pharo Setup
- Install Pharo and NeoConsole
- Set the
PHARO_DIR
environment variable to your Pharo installation directory (default:~/pharo
) - Ensure
NeoConsole.image
is available in the Pharo directory
Installation
- Clone the repository:
git clone <repository-url>
cd pharo-nc-mcp-server
- Install dependencies using uv:
uv sync --dev
Usage
Running the MCP Server
Start the server:
uv run pharo-nc-mcp-server
Cursor MCP settings
{
"mcpServers": {
"pharo-nc-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/your-path/to/pharo-nc-mcp-server",
"run",
"pharo-nc-mcp-server"
]
}
}
}
MCP Tools Available
evaluate_smalltalk_with_neo_console
Execute Smalltalk expressions in Pharo using NeoConsole:
# Example usage in MCP client
evaluate_smalltalk_with_neo_console(expression="42 factorial", command="eval")
evaluate_simple_smalltalk
Execute Smalltalk expressions using Pharo's simple -e option:
# Simple evaluation
evaluate_simple_smalltalk(expression="Time now")
get_pharo_metric
Retrieve system metrics from Pharo:
# Get system status
get_pharo_metric(metric="system.status")
# Get memory information
get_pharo_metric(metric="memory.free")
get_class_comment
Get the comment of a Pharo class:
# Get Array class comment
get_class_comment(class_name="Array")
get_class_definition
Get the definition of a Pharo class:
# Get Array class definition
get_class_definition(class_name="Array")
get_method_list
Get the list of method selectors for a Pharo class:
# Get all method selectors for Array class
get_method_list(class_name="Array")
get_method_source
Get the source code of a specific method in a Pharo class:
# Get source code for Array>>asSet method
get_method_source(class_name="Array", selector="asSet")
Environment Variables
PHARO_DIR
: Path to Pharo installation directory (default:~/pharo
)
Development
Code Formatting and Linting
# Format code
uv run black pharo_nc_mcp_server/
# Lint code
uv run ruff check pharo_nc_mcp_server/
# Run tests
uv run python -m pytest
# Or use the test script
./scripts/test.sh
Development Scripts
The project includes several convenience scripts in the scripts/
directory:
scripts/format.sh
Formats all code and documentation files in one command:
- Formats Python code using Black
- Formats markdown files using mdformat
- Runs linting checks with Ruff
./scripts/format.sh
scripts/test.sh
Runs the test suite using pytest:
./scripts/test.sh
Related Servers
MCP Remote Machine Control
Provides remote machine control capabilities, eliminating SSH overhead for token-efficient system operations.
Perfetto
Turn natural language into powerful Perfetto trace analysis. Quickly explain jank, diagnose ANRs, spot CPU hot threads, uncover lock contention, and find memory leaks.
NovaCV
An MCP server for accessing the NovaCV resume service API.
MCP Ollama Agent
A TypeScript agent that integrates MCP servers with Ollama, allowing AI models to use various tools through a unified interface.
Futu MCP
A quantitative analysis platform for Futu Securities, offering intelligent caching, technical analysis, and pattern recognition.
DeepSeek MCP Server
A server for code generation and completion using the DeepSeek API.
Apple Developer Documentation
Search Apple's official developer documentation for iOS, macOS, SwiftUI, WWDC videos, and more.
AWS Nova Canvas
Generate images using Amazon Nova Canvas with text prompts and color guidance.
Lean LSP
Interact with the Lean theorem prover via the Language Server Protocol (LSP), enabling LLM agents to understand, analyze, and modify Lean projects.
DevBrain
Finds relevant code snippets, developer articles, and blog posts based on your queries.