XLMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HTTP_PORT | No | HTTP port for MCP server | 8765 |
| MCP_TRANSPORT | No | Transport mode for MCP server (stdio or http) | stdio |
| RAG_CACHE_DIR | No | Directory for RAG cache | ~/.aix/knowledge |
| RAG_CHUNK_SIZE | No | Chunk size for RAG indexing | 512 |
| RAG_AUTO_REFRESH | No | Enable automatic refresh of knowledge indexes | true |
| JUPYTER_API_TOKEN | Yes | API token for Jupyter authentication (required) | |
| RAG_CHUNK_OVERLAP | No | Chunk overlap for RAG indexing | 100 |
| JUPYTER_SERVER_URL | Yes | URL of the Jupyter server (required) | |
| JUPYTER_ALLOWED_DIRS | Yes | Comma-separated list of allowed directories (required) | |
| JUPYTER_NOTEBOOK_DIR | Yes | Base directory for notebooks (required) | |
| RAG_MAX_FILE_SIZE_MB | No | Maximum file size in MB for indexing | 10 |
| MCP_MAX_OUTPUT_TOKENS | No | Maximum output tokens for MCP responses | 25000 |
| RAG_AUTO_REFRESH_INTERVAL | No | Auto refresh interval in seconds | 300 |
| RAG_SKIP_NOTEBOOK_OUTPUTS | No | Skip notebook outputs during indexing | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| jupyter_list_notebooksA | List all Jupyter notebooks in a directory. |
| jupyter_find_notebookA | Find notebooks by filename. Useful when you know the notebook name but not the full path. |
| jupyter_get_notebook_infoA | Get information about a notebook including cell counts and kernel info. |
| jupyter_read_cellB | Read content of a specific cell in a notebook. |
| jupyter_read_all_cellsC | Read all cells from a notebook. |
| jupyter_append_cellB | Append a new cell to the end of a notebook. |
| jupyter_insert_cellB | Insert a new cell at a specific position in the notebook. |
| jupyter_update_cellC | Update content of an existing cell. |
| jupyter_delete_cellB | Delete a cell from the notebook. |
| jupyter_list_kernelsA | List all running Jupyter kernels. Returns: JSON with list of kernels (id, name, state, connections) |
| jupyter_start_kernelC | Start a new Jupyter kernel. |
| jupyter_stop_kernelB | Stop a running kernel. |
| jupyter_restart_kernelA | Restart a kernel (clears all state). |
| jupyter_interrupt_kernelB | Interrupt a running kernel (stop current execution). |
| jupyter_execute_codeB | Execute Python code in a running kernel. |
| jupyter_connect_notebookA | Connect to a notebook's kernel (create session if needed). This gets an existing kernel session for the notebook or creates a new one. Use the returned kernel_id for subsequent execute_code calls. |
| jupyter_execute_cellB | Execute a specific cell in a notebook. This will:
|
| knowledge_index_directoryA | Index or update knowledge directory for semantic search. Supports: .md (markdown), .py (Python), .ipynb (Jupyter notebooks) |
| knowledge_searchA | Search knowledge base with semantic similarity and filters. Searches across .md, .py, and .ipynb files. |
| knowledge_list_indexesA | List all indexed knowledge directories with statistics. Returns: JSON with list of indexes (directory, collection, file_count, last_updated) |
| knowledge_refresh_indexC | Manually force refresh of knowledge index. |
| knowledge_get_tagsA | Extract all unique tags from indexed documents with counts. |
| knowledge_get_metadata_fieldsC | List available metadata fields for filtering with examples. |
| knowledge_drop_indexB | Drop index and remove all cached data for a directory. |
| knowledge_list_knowledgesA | List all registered knowledge bases from ~/.aix/knowledges.yaml. Shows which knowledge bases are registered, whether they exist, and whether they have been indexed. Returns: JSON with knowledge bases information including paths, descriptions, tags, existence status, and index status |
| project_createA | Create a new project. Projects are stored in ~/.aix/projects/ and contain:
|
| project_listA | List all projects. Returns: JSON with list of all projects including name, status, type, tags, and timestamps |
| project_getB | Get detailed information about a project. |
| project_update_descriptionC | Update project description. |
| project_add_logA | Add a log entry to project. Log entries are automatically timestamped and appended to the project's log.md file. |
| project_read_logC | Read recent log entries from project. |
| project_set_contextA | Set or update project context. Context is machine-readable state stored in context.json. Only provided fields are updated. |
| project_get_contextC | Get project context. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/xLydianSoftware/aix'
If you have feedback or need assistance with the MCP directory API, please join our Discord server