KumoRFM MCP Server
OfficialEnables CrewAI agents to query KumoRFM for predictive analytics, graph management, and natural language queries on relational data.
Allows LangGraph agents to interact with KumoRFM for executing predictive queries, evaluating models, and managing graph metadata.
Lets OpenAI Agents SDK agents use KumoRFM to perform predictive analysis, imputation, and forecasting on multi-table data.
Allows Snowflake Native Apps to connect to KumoRFM over HTTP for predictive queries and graph management in the Snowflake ecosystem.
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., "@KumoRFM MCP Server Predict next month's sales from my customer data"
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.
🔬 MCP server to query KumoRFM in your agentic flows
📖 Introduction
KumoRFM is a pre-trained Relational Foundation Model (RFM) that generates training-free predictions on any relational multi-table data by interpreting the data as a (temporal) heterogeneous graph. It can be queried via the Predictive Query Language (PQL).
This repository hosts a full-featured MCP (Model Context Protocol) server that empowers AI assistants with KumoRFM intelligence. This server enables:
🕸️ Build, manage, and visualize graphs directly from CSV or Parquet files
💬 Convert natural language into PQL queries for seamless interaction
🤖 Query, analyze, and evaluate predictions from KumoRFM (missing value imputation, temporal forecasting, etc) all without any training required
Related MCP server: GraphJin
🚀 Installation
🐍 Traditional MCP Server
The KumoRFM MCP server is available for Python 3.10 and above. To install, simply run:
pip install kumo-rfm-mcpAdd to your MCP configuration file (e.g., Claude Desktop's mcp_config.json):
{
"mcpServers": {
"kumo-rfm": {
"command": "python",
"args": ["-m", "kumo_rfm_mcp.server"],
"env": {
"KUMO_API_KEY": "your_api_key_here"
}
}
}
}HTTP Transport
For HTTP-native MCP clients such as a Snowflake Native App, run the server with
streamable-http instead of stdio:
KUMO_API_KEY=<YOUR-KUMO-API-KEY> \
MCP_BEARER_TOKEN=<SHARED-MCP-TOKEN> \
python -m kumo_rfm_mcp.server \
--transport streamable-http \
--host 0.0.0.0 \
--port 8000 \
--path /mcpNotes:
Set
KUMO_API_KEYup front for headless deployments. This avoids the browser-based OAuth flow.If your MCP client cannot inject environment variables, call the
authenticatetool with anapi_keyargument once at session start.If
MCP_BEARER_TOKENis set, the HTTP endpoint requiresAuthorization: Bearer <SHARED-MCP-TOKEN>.
⚡ MCP Bundle
We provide a single-click installation via our MCP Bundle (MCPB) (e.g., for integration into Claude Desktop):
Download the
dxtfile from hereDouble click to install
The MCP Bundle supports Linux, macOS and Windows, but requires a Python executable to be found in order to create a separate new virtual environment.
Claude code
To include the server in claude code use:
claude mcp add --transport stdio kumo-rfm-mcp --env KUMO_API_KEY=<YOUR-API-KEY> -- python -m kumo_rfm_mcp.server --port 8000🎬 Claude Desktop Demo
See here for the transcript.
https://github.com/user-attachments/assets/56192b0b-d9df-425f-9c10-8517c754420f
🔬 Agentic Workflows
You can use the KumoRFM MCP directly in your agentic workflows:
Browse our examples to get started with agentic workflows powered by KumoRFM.
📚 Available Tools
I/O Operations
🔍
find_table_files- Searching for tabular files: Find all table-like files (e.g., CSV, Parquet) in a directory.🧐
inspect_table_files- Analyzing table structure: Inspect the first rows of table-like files.
Graph Management
🗂️
inspect_graph_metadata- Reviewing graph schema: Inspect the current graph metadata.🔄
update_graph_metadata- Updating graph schema: Partially update the current graph metadata.🖼️
get_mermaid- Creating graph diagram: Return the graph as a Mermaid entity relationship diagram.🕸️
materialize_graph- Assembling graph: Materialize the graph based on the current state of the graph metadata to make it available for inference operations.📂
lookup_table_rows- Retrieving table entries: Lookup rows in the raw data frame of a table for a list of primary keys.
Model Execution
🤖
predict- Running predictive query: Execute a predictive query and return model predictions.📊
evaluate- Evaluating predictive query: Evaluate a predictive query and return performance metrics which compares predictions against known ground-truth labels from historical examples.🧠
explain- Explaining prediction: Execute a predictive query and explain the model prediction.
🔧 Configuration
Environment Variables
KUMO_API_KEY: Authentication is needed once before predicting or evaluating with the KumoRFM model. You can generate your KumoRFM API key for free here. If not set, you can also authenticate on-the-fly in individual session via an OAuth2 flow.
We love your feedback! :heart:
As you work with KumoRFM, if you encounter any problems or things that are confusing or don't work quite right, please open a new :octocat:issue. You can also submit general feedback and suggestions here. Join our Slack!
Available Tools
12 toolsauthenticate🔑 Signing in to KumoRFM…A
Authenticate the current KumoRFM session.
Authentication is needed once before predicting or evaluating with the KumoRFM model. If an API key is provided directly, it is used immediately. Otherwise, if the 'KUMO_API_KEY' environment variable is not set, this initiates an OAuth2 authentication flow by opening a browser window for user login. Sets the 'KUMO_API_KEY' environment variable upon successful authentication.
Inputs: api_key, api_url. Returns: Generic wrapper for non-object return types.
evaluate📊 Evaluating predictive query…ARead-onlyIdempotent
Evaluate a predictive query and return performance metrics which compares predictions against known ground-truth labels from historical examples.
The graph needs to be materialized and the session needs to be authenticated before the KumoRFM model can start evaluating.
Take the label distribution of the predictive query in the output logs into account when analyzing the returned metrics.
Important: Before executing or suggesting any predictive queries, read the documentation first at 'kumo://docs/predictive-query'.
Inputs: query (required), metrics, anchor_time, run_mode, +2 more. Returns: metrics, logs
explain🧠 Explaining prediction…ARead-onlyIdempotent
Execute a predictive query and explain the model prediction.
The graph needs to be materialized and the session needs to be authenticated before the KumoRFM model can start generating an explanation for a prediction.
Only a single entity prediction can be explained at a time.
The run_mode will be fixed to 'fast' mode for explainability.
Note that the model prediction returned by the explanation might differ
slightly from the result of the predict tool due to floating-point
precision. Ignore such small differences.
Important: Before executing or suggesting any predictive queries, read the documentation first at 'kumo://docs/predictive-query'.
Important: Before analyzing the explanation output, read the documentation first at 'kumo://docs/explainability'.
Inputs: query (required), index (required), anchor_time, num_neighbors, +1 more. Returns: prediction, explanation, logs
find_table_files🔍 Searching for tabular files…ARead-onlyIdempotent
Finds all table-like files (e.g., CSV, Parquet) in a directory.
This tool is for local directories only. It cannot search, e.g., in S3 buckets.
Inputs: path (required), recursive. Returns: Generic wrapper for non-object return types.
get_docs📖 Reading…ARead-only
Get documentation on how to use KumoRFM.
KumoRFM is a pre-trained Relational Foundation Model (RFM) that generates training-free predictions on any relational multi-table data by interpreting the data as a (temporal) heterogeneous graph. It can be queried via the Predictive Query Language (PQL).
Internal note: It is NOT related to "Recency, Frequency, Monetary" analysis.
Internally, KumoRFM utilizes in-context learning to transfer patterns from historical examples to new unseen examples. Specifically, it constructs training/in-context subgraphs with known ground-truth labels and relates them to unseen subgraphs.
See the 'kumo://docs/overview' resource for more information.
KumoRFM can discover table-like files (e.g., CSV, Parquet), inspect them, and structure them into a graph via foreign key-primary key relationships. A time column in a table dictates the create time of a row, which is used downstream to receive and order historical interactions and prevent temporal leakage. Each column within a table is assigned a semantic type (numerical, categorical, multi-categorical, ID, text, timestamp, sequence, etc) that denotes the semantic meaning of the column and how it should be processed within the model.
Important: Before creating and updating graphs, read the documentation first at 'kumo://docs/graph-setup'.
After a graph is set up and materialized, KumoRFM can generate
predictions (e.g., missing value imputation, temporal forecasts) and
evaluations by querying the graph via the Predictive Query Language
(PQL), a declarative language to formulate machine learning tasks.
Understanding PQL and how it maps to a machine learning task is
critical to achieve good model predictions. Besides PQL, various other
options exist to tune model output, e.g., optimizing the run_mode of
the model, specifying how subgraphs are formed via num_neighbors, or
adjusting the anchor_time to denote the point in time for when a
prediction should be made.
Important: Before executing or suggesting any predictive queries, read the documentation first at 'kumo://docs/predictive-query'.
KumoRFM can additionally generate explanations for predictions, providing both a global column-level analysis and a local, cell-level attribution view. Together, these views enable comprehensive interpretation.
Important: Before analyzing the explanation output, read the documentation first at 'kumo://docs/explainability'.
Inputs: resource_uri (required). Returns: Generic wrapper for non-object return types.
get_mermaid🖼️ Creating graph diagram…ARead-onlyIdempotent
Return the graph as a Mermaid entity relationship diagram.
Important: The returned Mermaid markup can be used to input into an artifact to render it visually on the client side.
Inputs: show_columns. Returns: Generic wrapper for non-object return types.
inspect_graph_metadata🗂️ Reviewing graph schema…ARead-onlyIdempotent
Inspect the current graph metadata.
Confirming that the metadata is set up correctly is crucial for the RFM model to work properly. In particular,
primary keys and time columns need to be correctly specified for each table in case they exist;
columns need to point to a valid semantic type that describe their semantic meaning, or
Noneif they have been discarded;links need to point to valid foreign key-primary key relationships.
Inputs: no named parameters. Returns: Metadata of a graph holding multiple tables connected via foreign key-primary k…
inspect_table_files🧐 Analyzing table structure…BRead-onlyIdempotent
Inspect the first rows of table-like files.
Each row in a file is represented as a dictionary mapping column names to their corresponding values.
Inputs: paths (required), num_rows. Returns: object
lookup_table_rows📂 Retrieving table entries…ARead-onlyIdempotent
Lookup rows in the raw data frame of a table for a list of primary keys.
In contrast to the 'inspect_table_files' tool, this tool can be used to query specific rows in a registered table in the graph. It should not be used to understand and analyze table schema.
Use this tool to look up detailed information about recommended items to provide richer, more meaningful recommendations to users.
The table to read from needs to have a primary key, and the graph has to be materialized.
Inputs: table_name (required), ids (required). Returns: Preview of the first rows of a table-like file.
materialize_graph🕸️ Assembling graph…AIdempotent
Materialize the graph based on the current state of the graph metadata
to make it available for inference operations (e.g., predict and
evaluate).
Any updates to the graph metadata require re-materializing the graph before the KumoRFM model can start making predictions again.
Inputs: no named parameters. Returns: Information about the materialized graph.
predict🤖 Running predictive query…ARead-onlyIdempotent
Execute a predictive query and return model predictions.
The graph needs to be materialized and the session needs to be authenticated before the KumoRFM model can start generating predictions.
The output prediction format depends on the given task type.
Binary classification: | ENTITY | ANCHOR_TIMESTAMP | TARGET_PRED | False_PROB | True_PROB | where 'ENTITY' holds the entity ID, 'ANCHOR_TIMESTAMP' holds the anchor time of the prediction in unix format, 'TARGET_PRED' holds the final prediction based on a threshold of 0.5, and 'False_PROB' and 'True_PROB' hold the probabilities.
Multi-class classification: | ENTITY | ANCHOR_TIMESTAMP | CLASS | SCORE | PREDICTED | where 'ENTITY' holds the entity ID, 'ANCHOR_TIMESTAMP' holds the anchor time of the prediction in unix format. Each row corresponds to an (ENTITY, CLASS) pair (up to 10 classes are reported), where 'CLASS' holds the predicted value, 'SCORE' holds its probability, and 'PREDICTED' denotes whether the (ENTITY, CLASS) pair has the highest likelihood.
Regression: | ENTITY | ANCHOR_TIMESTAMP | TARGET_PRED | where 'ENTITY' holds the entity ID, 'ANCHOR_TIMESTAMP' holds the anchor time of the prediction in unix format, and 'TARGET_PRED' holds the predicted numerical value.
Temporal link prediction: | ENTITY | ANCHOR_TIMESTAMP | CLASS | SCORE | where 'ENTITY' holds the entity ID, 'ANCHOR_TIMESTAMP' holds the anchor time of the prediction in unix format. Each row corresponds to an (ENTITY, CLASS) pair, where 'CLASS' holds the recommended item and 'SCORE' holds its likelihood.
Important: Before executing or suggesting any predictive queries, read the documentation first at 'kumo://docs/predictive-query'.
Inputs: query (required), indices (required), anchor_time, run_mode, +2 more. Returns: predictions, logs
update_graph_metadata🔄 Updating graph schema…AIdempotent
Partially update the current graph metadata.
Setting up the metadata is crucial for the RFM model to work properly. In particular,
primary keys and time columns need to be correctly specified for each table in case they exist;
columns need to point to a valid semantic type that describe their semantic meaning, or
Noneif they should be discarded;links need to point to valid foreign key-primary key relationships.
Omitted fields will be untouched.
For newly added tables, it is advised to double-check semantic types and modify in a follow-up step if necessary.
Make sure that tables are correctly linked before proceeding.
Note that all operations can be performed in a batch at once, e.g., one can add new tables and directly link them to together.
Important: Before creating and updating graphs, read the documentation first at 'kumo://docs/graph-setup'.
Inputs: update (required). Returns: Updated metadata of a graph holding multiple tables connected via " "foreign ke…
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Every tool addresses a distinct aspect of the workflow: authentication, file discovery, metadata inspection/update, graph materialization, prediction, evaluation, explanation, and documentation. There is no functional overlap that would cause confusion.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., authenticate, find_table_files, inspect_graph_metadata). This makes the expected action and target clear and predictable.
12 tools cover the necessary stages of the KumoRFM pipeline without being excessive. Each tool earns its place, and the count is well-suited for a domain-specific ML server.
The tool set provides end-to-end coverage: data discovery, graph setup, materialization, prediction, evaluation, and explanation. Supporting tools like get_docs and get_mermaid enhance usability. No critical gaps are evident.
Maintenance
Related MCP Connectors
Answer questions using your semantic layer and company knowledge graph.
Bring Kubit into your AI workflow — query your warehouse with natural language
Company and industrial data for AI assistants: datasets, SQL, dashboards, alarms, with approvals.
Ask questions in plain language, get answers from your business database. No SQL required.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to build and query temporally-aware knowledge graphs from conversations and data, maintaining persistent memory of entities, relationships, and facts across interactions.-
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to query databases using natural language, with automatic schema discovery and SQL compilation.833 npm3,235Apache 2.0
- AlicenseAqualityDmaintenanceEnables AI assistants to query and analyze user behavior data from the Sensors Analytics platform using natural language.7ISC
- AlicenseAqualityDmaintenanceProvides AI assistants with semantic layer visibility and multi-dimensional querying capabilities over Cube.js data.216 npm1MIT