Skip to main content
Glama

pharo-nc-mcp-server

Tests

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

  1. Install Pharo and NeoConsole

  2. Set the PHARO_DIR environment variable to your Pharo installation directory (default: ~/pharo)

  3. Ensure NeoConsole.image is available in the Pharo directory

Installation

  1. Clone the repository:

git clone <repository-url> cd pharo-nc-mcp-server
  1. 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
-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mumez/pharo-nc-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server