Pixeltable MCP Server (Developer Edition)
Enables local AI analysis of images and multimodal data processing through Ollama integration.
Provides an interactive REPL for executing Python code, performing data exploration, and introspecting functions within a persistent Pixeltable session.
Supports running YOLOX object detection on images and photos managed within the Pixeltable infrastructure.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pixeltable MCP Server (Developer Edition)Create a table for my images and run object detection on them"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pixeltable MCP Server (Developer Edition)
Multimodal AI data infrastructure as an MCP server. 35 tools · 13 resources · 11 prompts for catalog management, AI/ML pipelines, dependency management, project scaffolding, and an interactive REPL.
Uses sync endpoints + uvloop for best performance with Pixeltable ≥ 0.6.3 (see pyproject.toml). Aligned with the pixeltable-skill and pixeltable-starter-kit conventions (pxt.mcp_udfs, FastAPIRouter, return_rows=True, pxt.Required[T], pxt.Array[T]).
Quick Start
Requires uv:
curl -LsSf https://astral.sh/uv/install.sh | shClaude Code (easiest) — just say:
"Install https://github.com/pixeltable/mcp-server-pixeltable-developer as a uv tool and add it to your MCPs"
Manual install:
uv tool install --from git+https://github.com/pixeltable/mcp-server-pixeltable-developer.git mcp-server-pixeltable-developer
claude mcp add pixeltable mcp-server-pixeltable-developer # Claude CodeIf uv warns that ~/.local/bin is not on your PATH, run uv tool update-shell (or add that directory to PATH) so mcp-server-pixeltable-developer is found. Check with mcp-server-pixeltable-developer --version.
From source:
git clone https://github.com/pixeltable/mcp-server-pixeltable-developer && cd mcp-server-pixeltable-developer
uv syncClient Configuration
{
"mcpServers": {
"pixeltable": {
"command": "mcp-server-pixeltable-developer",
"env": {
"PIXELTABLE_HOME": "/Users/{you}/.pixeltable",
"PIXELTABLE_FILE_CACHE_SIZE_G": "10"
}
}
}
}From source — use "command": "uv" with "args": ["run", "--directory", "{repo}", "python", "-m", "mcp_server_pixeltable_stio"].
User config — ~/.cursor/mcp.json (applies to all workspaces):
{
"mcpServers": {
"pixeltable-developer": {
"command": "mcp-server-pixeltable-developer",
"env": {
"PIXELTABLE_HOME": "/Users/you/.pixeltable"
}
}
}
}If Cursor reports command not found, use the full path from uv tool update-shell / which mcp-server-pixeltable-developer, e.g. "command": "/Users/you/.local/bin/mcp-server-pixeltable-developer".
Develop this repo from source — optional project .cursor/mcp.json so the server runs from your clone (replace the path):
{
"mcpServers": {
"pixeltable-developer": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-server-pixeltable-developer", "python", "-m", "mcp_server_pixeltable_stio"],
"env": {
"PIXELTABLE_HOME": "/Users/you/.pixeltable"
}
}
}
}Do not define the same server name twice (user + project) unless you intend to run two entries.
Restart your client after configuration changes.
Testing
Use a dedicated PIXELTABLE_HOME for testing so you do not touch other catalogs.
MCP Inspector (interactive)
From a clone, after uv sync:
export PIXELTABLE_HOME="$HOME/.pixeltable-mcp-test"
uv run mcp dev src/mcp_server_pixeltable_stio/server.py:mcpThis starts the server and opens the MCP Inspector in your browser so you can invoke tools, read resources, and try prompts without an IDE.
Quick checks: tool pixeltable_check_dependencies with expression openai.chat_completions; tool execute_python with print(pxt.__version__); resource pixeltable://version.
Cursor
Add PIXELTABLE_HOME under env in .cursor/mcp.json (see Client Configuration above). Restart Cursor, confirm the server connects, then run a simple tool from the MCP panel.
CLI sanity (no JSON-RPC)
mcp-server-pixeltable-developer --version
uv run python list_tools.py--version / --help exit immediately. list_tools.py only prints registered tools, resources, and prompts (import check, not a full MCP session).
Tools (35)
Category | Tools |
Init |
|
Tables |
|
Data |
|
Directories |
|
Config |
|
AI/ML |
|
Deps |
|
Types |
|
Docs |
|
Scaffolding |
|
REPL |
|
Logging |
|
Display |
|
All tools are prefixed pixeltable_ (except REPL/logging helpers). Full docstrings available via introspect_function. pixeltable://tools always reflects the live FastMCP registration.
create_view accepts iterator (frame_iterator / document_splitter / audio_splitter / string_splitter) + iterator_kwargs so frame and chunk views don't require dropping into execute_python.
Resources (13)
URI | What it returns |
| All tables with count |
| Info about a table / view / snapshot |
| Column schema |
| All directories |
| Directory listing |
| Pixeltable version |
| Datastore config |
| Available data types |
| Registered Pixeltable functions |
| MCP tool list (introspects the live FastMCP server) |
| Workflow guidance + pitfalls |
| System & dependency diagnostics |
Prompts (11)
Core: pixeltable_usage_guide (now leads with pitfalls) · getting_started · computer_vision_pipeline · rag_pipeline · video_analysis_pipeline · audio_processing_pipeline
Agent / data (from pixeltable-skill): tool_calling_agent_pipeline · agent_with_memory_pipeline · video_rag_agent_pipeline · agentic_patterns_guide · ml_data_pipeline
Examples
Create a table called movies with title, year, and rating columns → insert sample data → query ratings above 8.5
Add a computed column that runs YOLOX object detection on every image
Check what deps I need for openai.chat_completions(...) → install them
execute_python("print(pxt.list_tables())")Documentation
pixeltable-skill — task router, critical anti-patterns (
openai.vision,FrameIterator, positional.similarity, etc.), and workflow examples aligned with current Pixeltablepixeltable-starter-kit —
FastAPIRouter/pxt servepatterns and seven app templates; usepixeltable_scaffold_projectto bootstrap themConsumer side of MCP:
pxt.mcp_udfs(url)(Pixeltable 0.6.x+) pulls this server's tools into a Pixeltable agent; expose them withpxt.tools(local_udf, *mcp_tools)andinvoke_tools
Architecture
src/mcp_server_pixeltable_stio/
server.py FastMCP server, tool/resource/prompt registration, uvloop, canvas gate
core/
tables.py Table CRUD, views (iterator support), snapshots, replicas, queries,
computed columns (eval context exposes all skill providers),
_resolve_pxt_type (Required[T] / Array[T] / dict form)
directories.py Directory CRUD, listing, moving
dependencies.py Dependency checking, unified installer, diagnostics
udf.py UDF creation, type system, pxt.tools / pxt.mcp_udfs wrappers
helpers.py Config, version, docs search, live pixeltable://tools introspection
resources.py Read-only MCP resource handlers
scaffold.py pixeltable-new wrappers (module first, uvx fallback)
canvas_server.py Optional browser canvas (lazy-imported; opt-in via env)
prompt.py Prompt templates (11 prompts covering core flows + 5 skill agent flows)
repl_functions.py Persistent Python REPL, introspection, package management
tests/ Fast pytest suite + slow smoke (--run-slow uses tmp PIXELTABLE_HOME)
.github/workflows/ CI: matrix py3.10/3.11/3.12, list_tools.py + pytestOptional canvas display
The display_in_browser tool requires:
Install the canvas extra:
uv pip install 'mcp-server-pixeltable-developer[canvas]'(adds FastAPI + uvicorn).Start the MCP server with
PIXELTABLE_MCP_CANVAS=1(override the port withPIXELTABLE_MCP_CANVAS_PORT).
Without those, the tool returns a clear error and core MCP traffic is unaffected.
Project scaffolding
pixeltable_list_project_templates and pixeltable_scaffold_project wrap pixeltable-new. The MCP imports pixeltable_new.new if installed, otherwise shells out to uvx pixeltable-new --json. Patterns: serving / backend / batch. Templates include multimodal-rag, agent, video-intel, audio-intel, data-lab, content-pipeline, full-stack-showcase.
Troubleshooting
Restart your client after any config change
Python 3.10+ and
uvare requiredcommand not foundafteruv tool install: ensure~/.local/binis onPATH(uv tool update-shell) or invoke via full path; confirm withmcp-server-pixeltable-developer --versionCheck that
PIXELTABLE_HOMEpoints to a valid directoryCircular env initialization detected: call the
pixeltable_inittool to clear the stale state, or re-create yourPIXELTABLE_HOMECanvas error from
display_in_browser: install thecanvasextra and setPIXELTABLE_MCP_CANVAS=1(see above)Use
log_bug(...)/generate_bug_report()for structured issue trackingFile issues at github.com/pixeltable/mcp-server-pixeltable-developer
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/pixeltable/mcp-server-pixeltable-developer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server