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 "Deploy 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 Developer MCP Server
A local Model Context Protocol server for building, inspecting, and operating
Pixeltable applications. Version 0.2 follows the
application-first workflow in pixeltable-skill 2.8.3: generate one app.py, apply its schema, and serve its routes with the pxt CLI.
Compatibility
Component | Supported line |
Python | 3.11 or newer |
Pixeltable |
|
MCP Python SDK |
|
Pixeltable skill | 2.8.3 |
Production transport | local |
The server is a beta developer tool. It runs with the permissions of the
process that launched it and can mutate the selected Pixeltable catalog. Point
PIXELTABLE_MCP_PROJECT_ROOT at the application directory and PIXELTABLE_HOME
at the intended catalog before startup. Both locations are fixed for the life of
the process. Use a separate catalog for evaluation and automated tests.
Related MCP server: dltHub-AI-workbench
Install and connect
Install uv, then install the server:
uv tool install --from git+https://github.com/pixeltable/mcp-server-pixeltable-developer.git mcp-server-pixeltable-developer
mcp-server-pixeltable-developer --versionFor reproducible development from a clone:
git clone https://github.com/pixeltable/mcp-server-pixeltable-developer.git
cd mcp-server-pixeltable-developer
uv sync --frozen --extra testThe repository also builds a container image that runs the same stdio server.
Mount your application directory and point both variables at the mounts; the
catalog is lost with the container unless you mount one too. On macOS, the host
paths must be shared with your container engine, or the mount lands inside its VM:
docker build -t mcp-server-pixeltable-developer .
docker run --rm -i \
-e PIXELTABLE_MCP_PROJECT_ROOT=/work/app -e PIXELTABLE_HOME=/work/catalog \
-v /absolute/path/to/pixeltable-app:/work/app \
-v /absolute/path/to/.pixeltable:/work/catalog \
mcp-server-pixeltable-developerConfigure a client to launch the server over stdio. Replace the repository,
application project, and catalog paths with absolute paths:
{
"mcpServers": {
"pixeltable": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/mcp-server-pixeltable-developer",
"mcp-server-pixeltable-developer"
],
"env": {
"PIXELTABLE_MCP_PROJECT_ROOT": "/absolute/path/to/pixeltable-app",
"PIXELTABLE_HOME": "/absolute/path/to/.pixeltable"
}
}
}
}Restart the client after changing its MCP configuration. Keep one server process per catalog when performing schema or service mutations.
Default interface
Version 0.2 exposes a focused interface instead of mirroring the whole Pixeltable Python API.
Tools
Area | Tools |
Inspect |
|
Data |
|
App scaffold |
|
Schema lifecycle |
|
Service lifecycle |
|
Read tools declare read-only MCP annotations. Mutation tools declare their write and destructive behavior. Arguments and results use typed schemas, and recoverable failures are returned as MCP tool errors so clients can retry with corrected input.
Resources
URI | Purpose |
| Server, dependency, transport, catalog, and unsafe-mode status |
| Current catalog inventory |
| Pixeltable 0.7.6 application workflow |
| Cloud preparation guidance; it does not deploy resources |
Prompts
pixeltable_build_apppixeltable_build_ragpixeltable_build_agentpixeltable_debug_computation
The prompts are short task guides aligned with pixeltable-skill 2.8.3. The skill remains the detailed source for provider output shapes, multimodal views, indexes, tool calling, serving, debugging, and Cloud workflows.
Unsafe mode
Host-code execution, package installation, and browser display are disabled by default. A trusted local user can opt in before starting the server:
export PIXELTABLE_MCP_ENABLE_UNSAFE=1This adds:
pixeltable_unsafe_execute_pythonpixeltable_unsafe_install_packagepixeltable_unsafe_display
These tools are available only on stdio. They can execute arbitrary Python,
change the server environment, read files available to the server process, and
render untrusted content. Enable them only for a trusted, local MCP client and
a disposable development environment. Do not expose unsafe mode through an
HTTP transport.
The repository may use an in-process or HTTP harness in tests. HTTP is not a supported production transport for version 0.2. A future HTTP release must add authorization, concurrency and request limits, origin and host validation, per-principal isolation, and an explicit threat model before it is supported.
Recommended Pixeltable workflow
Start an application with the current Pixeltable CLI:
pip install 'pixeltable[serve]>=0.7.6,<0.8'
pxt init
pxt service example --out app.py
pxt schema check app.py
pxt schema diff app.py my_app
pxt schema update app.py my_app
pxt service check app.py
pxt service update app.py my_app
pxt service listmy_app is a catalog directory. It is not a filesystem directory. Edit
app.py and apply the schema again when the model changes. Apply the service
again after route changes. Use pxt service list to discover the assigned URL.
The application file should declare TableModel classes and, when HTTP routes
are needed, a FastAPIRouter. Stored columns use annotations. Computed columns
use assignments. Types are non-nullable by default; write T | None for an
optional column. Do not use pxt.Required.
Schema updates intentionally require a review step. schema_check validates
the file, schema_diff previews catalog changes, and schema_update applies
them. Prune operations are separate because they can remove catalog objects.
Changing an existing computed-column expression in place is unsupported by
Pixeltable; rename the column, or drop and re-add it in separate updates.
For Cloud, prepare the same app.py, set PIXELTABLE_API_KEY, configure the
target pxt://org:db, and review pixeltable://guidance/cloud. The MCP server
does not create paid resources or deploy to Cloud automatically.
Develop and verify
Use a disposable catalog:
export PIXELTABLE_MCP_PROJECT_ROOT="$PWD"
export PIXELTABLE_HOME="$(mktemp -d)/catalog"
uv sync --frozen --extra test
uv run pytest -q
PIXELTABLE_DISABLE_STDOUT=1 uv run pytest --run-slow -q
uv run python list_tools.py
./scripts/run-conformance.sh
./scripts/build-mcpb.shbuild-mcpb.sh writes the desktop-extension bundle to dist/ from tracked files
only. Pushing a v* tag publishes to PyPI through trusted publishing once the
evaluation gate passes; register this repository, workflow ci.yml, and
environment pypi as a trusted publisher on PyPI one time before the first tag.
Run the MCP Inspector only as a local test harness:
uv run mcp dev src/mcp_server_pixeltable_developer/server.py:mcpBefore release, also run the latest-dependency compatibility job, the MCP
in-memory contract tests, the subprocess stdio smoke test, lint, type checks,
and package build verification described in the review report.
Privacy Policy
The server runs entirely on the machine that starts it. It collects no telemetry and no analytics, and it sends nothing to Pixeltable or to any third party.
What it handles. The Pixeltable catalog at PIXELTABLE_HOME and the
application files under PIXELTABLE_MCP_PROJECT_ROOT, both chosen by you. Tool
results are returned to the MCP client that launched the server, which is how
your assistant reads them. Nothing else receives them.
Storage and retention. The server stores nothing of its own. Catalog data
stays in PIXELTABLE_HOME on your disk, under your control, and is removed when
you remove it.
Secrets. Command output is passed through a redactor that masks common credential forms, including URL passwords and API tokens, before it reaches the client.
Third parties. If your application declares computed columns that call model providers, Pixeltable makes those calls with the credentials you configured. That traffic is your application's, not this server's.
Unsafe mode. With PIXELTABLE_MCP_ENABLE_UNSAFE=1, the added tools execute
arbitrary Python, install packages, and read files available to the server
process. Enable it only on a trusted local machine.
Contact. Report privacy questions through GitHub issues.
Documentation
License
Apache-2.0. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
- OleanderOAuthdev.oleander
The all-in-one data stack for agents. Upload files, run SQL, evolve tables, and render charts.
AI workspace for you, your team, and every agent. Tables, docs (images, 4K video), formulas.
Database for your AI agent. Turn its output into data, docs, skills, and apps you can actually use.
A collaborative substrate over your data: vector, knowledge graph, SQL, geospatial, streaming.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables creating interactive data visualizations from natural language queries using DuckDB for local databases or Databricks for enterprise data warehouses. Supports multiple chart types, CSV imports, SQL queries, and automatic statistical analysis through Claude Desktop.19MIT

dltHub-AI-workbenchofficial
FlicenseAqualityBmaintenanceIt gives Claude Code, Cursor, and Codex structured workflows and an MCP server for building data pipelines with dlt - covering REST API ingestion, transformations, data quality, and exploration.1760-- AlicenseNot gradedqualityFmaintenanceEnables data engineers and BI professionals to perform data pipeline development, quality assurance, visualization, and API integration locally with AI assistance.5MIT
- AlicenseNot gradedqualityBmaintenanceProvides a local long-term memory layer for AI coding tools like Cursor and Claude Code, enabling cross-session, cross-tool sharing of project facts, user preferences, decisions, and workflows.36 npm2MIT