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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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