FarmVibes.AI MCP server
The farmvibes-mcp package lets Model Context Protocol clients inspect
FarmVibes.AI workflows, submit runs, and retrieve results over stdio. It uses
the existing Python client directly, so local and remote clusters behave the
same way.
Install
Use a dedicated Python 3.11 environment. Do not install the MCP SDK into the FarmVibes service environment: the current MCP and service web stacks require different Starlette, Uvicorn, and OpenTelemetry versions.
python -m venv .venv-mcp
.venv-mcp/bin/pip install ./src/vibe_core ./src/farmvibes_mcp
The server uses the Python client’s existing target discovery:
remote_service_urlandprivate/remote_api_tokenfor a configured remote cluster;service_urlfor a configured local cluster;http://127.0.0.1:31108/otherwise.
Run farmvibes-ai remote status to recover a missing remote URL or token.
Tokens are never MCP arguments or results and do not belong in MCP
configuration.
Configure an MCP client
For VS Code, add .vscode/mcp.json:
{
"servers": {
"farmvibes": {
"type": "stdio",
"command": "${workspaceFolder}/.venv-mcp/bin/farmvibes-mcp"
}
}
}
Clients that use the mcpServers format can launch the same executable:
{
"mcpServers": {
"farmvibes": {
"command": "/absolute/path/to/.venv-mcp/bin/farmvibes-mcp"
}
}
}
Tools
Tool |
Purpose |
|---|---|
|
List workflows available on the selected cluster. |
|
Show a workflow’s inputs, outputs, parameters, and tasks. |
|
Submit GeoJSON geometry, a time range, and optional parameters. |
|
List runs, optionally filtering IDs and response fields. |
|
Get run metadata and task details without the potentially large output. |
|
Get a run’s status and output. |
|
Request cancellation of a pending or running run. |
submit_run requires a GeoJSON geometry and timezone-aware ISO 8601
timestamps. Submission is nonblocking: poll with get_run, then call
get_run_output when the run is done.
Useful requests include:
“List the available FarmVibes workflows.”
“Describe the inputs and parameters for
helloworld.”“Run
helloworldover this GeoJSON polygon from2021-02-01T00:00:00+00:00to2021-02-11T00:00:00+00:00.”“Check that run and show its output when it finishes.”
Try it in Codespaces
The repository devcontainer supports the local k3d cluster in Codespaces. A 32-core Codespace is fastest, but the setup is otherwise the normal local workflow:
python -m venv /workspaces/.venv-mcp
uv pip install --python /workspaces/.venv-mcp/bin/python \
-e ./src/vibe_core -e ./src/farmvibes_mcp
FARMVIBES_AI_CONFIG_DIR=/workspaces/fv-config \
/workspaces/.venv-mcp/bin/farmvibes-ai local setup \
--auto-confirm \
--cluster-name farmvibes-mcp \
--servers 1 \
--agents 1 \
--worker-replicas 1 \
--disable-telemetry \
--host 127.0.0.1
Point the MCP process at the same configuration directory:
FARMVIBES_AI_CONFIG_DIR=/workspaces/fv-config \
/workspaces/.venv-mcp/bin/farmvibes-mcp
Delete the test cluster when finished:
FARMVIBES_AI_CONFIG_DIR=/workspaces/fv-config \
/workspaces/.venv-mcp/bin/farmvibes-ai local destroy \
--auto-confirm \
--cluster-name farmvibes-mcp
Current scope
This initial server supports stdio only. It does not expose prompts, resources, asset downloads, arbitrary existing-asset submission, or a blocking wait tool.