Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NEO4J_PASSWORDNoPassword for Neo4j database connection. Can also be set in the configuration file.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
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

NameDescription
nodesA

Manage graph nodes (SKILL, KNOWLEDGE, SCRIPT, ENV).

Supports create, read, update, delete, and list operations.

Args:
    operation: Operation to perform (create, read, update, delete, list)
    node_type: Type of node (SKILL, KNOWLEDGE, SCRIPT, ENV)
    node_id: Node ID (for read, update, delete)
    data: Node data (for create, update) - can be dict or JSON string
    filters: Filter criteria (for list) - can be dict or JSON string

Returns:
    Operation result

SCRIPT Node Best Practices:
    - Do NOT include `if __name__ == '__main__':` blocks - they are
      automatically stripped during execution to prevent unintended side effects
    - Export functions/classes that should be callable from user code
    - Keep example/test code in separate functions, not in __main__ blocks
    - Use PEP 723 metadata for dependencies
    - To use environment variables, create an ENV node and connect it to the
      SCRIPT using a CONTAINS relationship: SCRIPT -[:CONTAINS]-> ENV
      The ENV variables will be automatically loaded during execution

Examples:
    Create a SKILL node:
    ```
    nodes(
        operation="create",
        node_type="SKILL",
        data={
            "name": "data-pipeline",
            "description": "ETL pipeline for data processing",
            "body": "# Data Pipeline\n\nThis skill..."
        }
    )
    ```

    Create a SCRIPT node (note: no __main__ block):
    ```
    nodes(
        operation="create",
        node_type="SCRIPT",
        data={
            "name": "fetch_data",
            "description": "Fetch data from API",
            "function_signature": "fetch_data(url: str) -> dict",
            "body": '''# /// script

requires-python = ">=3.12"

dependencies = ["requests>=2.31.0"]

///

import requests

def fetch_data(url: str) -> dict: response = requests.get(url) response.raise_for_status() return response.json() ''' } ) ```

    List SCRIPT nodes:
    ```
    nodes(
        operation="list",
        node_type="SCRIPT",
        filters={"name": "fetch"}
    )
    ```
relationshipsB

Manage relationships between nodes (CONTAINS, RELATE_TO).

Supports create, delete, and list operations. Prevents circular CONTAINS dependencies.

envA

Manage environment variables with automatic secret detection.

Variables matching SECRET_*, *_KEY, *_PASSWORD, *_TOKEN patterns are automatically detected and hidden from LLM responses. ENV files are stored at .mcp-kg-skills/envs/{env_id}.env

executeA

Execute Python code with dynamically imported functions from SCRIPT nodes.

The system automatically:

  • Loads specified SCRIPT nodes

  • Merges their PEP 723 dependencies

  • Loads ENV variables from connected nodes AND directly specified envs

  • Executes code using 'uv run'

  • Sanitizes output to remove secret values

queryA

Execute read-only Cypher queries to explore the knowledge graph.

Only MATCH, RETURN, WITH, WHERE, ORDER BY operations are allowed. Results are automatically sanitized to hide secret values.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

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/fkesheh/mcp-kg-skills'

If you have feedback or need assistance with the MCP directory API, please join our Discord server