Skip to main content

mcp-kyvos-server is a server implementation that integrates the Kyvos platform with the Model Context Protocol (MCP). It enables users to query Kyvos semantic models using natural language, translating prompts into executable queries and returning results from Kyvos. The server supports both SSE and STDIO communication modes and allows secure authentication using user-provided Kyvos credentials (basic and OAuth2.0).

Project description

MCP Kyvos Server

The MCP Kyvos Server enables agentic applications to interact with the Kyvos platform for querying business data. It supports two transport modes:

  • SSE (Server-Sent Events): This transport is suited for remote integrations. It uses HTTP requests for communication. It allows servers to handle multiple client connections efficiently. SSE mode supports both Basic and OAuth authorization. OAuth requires users to authenticate using their Kyvos credentials before establishing a connection, providing a secure and standardized login mechanism.
  • STDIO (Standard I/O): This transport is primarily used for inter-process communication within the same system. It’s particularly suitable for command-line tools and local integrations where the client and server operate within the same process. Only Basic authorization is supported in this mode.

Tools

The MCP Kyvos server exposes the following tools:

  1. kyvos_list_semantic_model

    • Description: Lists available semantic model with schema details.
  2. kyvos_list_semantic_model_columns

    • Description: Retrieves column metadata for a specified semantic model.
  3. kyvos_sql_generation_prompt

    • Description: Provides the system prompt template for SQL generation.
  4. kyvos_execute_query

    • Description: Executes a Spark SQL query on Kyvos and returns a json based result set.

Installation

Install the mcp-kyvos-server package from pip:

pip install mcp-kyvos-server==1.0.0a2

Configuration & Parameters

The server can be configured via environment variables or command-line flags. CLI flags override environment variables.

Parameter Environment Variable CLI Flag Required Default Value Description
Kyvos URL KYVOS_URL --kyvos-url <url> Yes The base URL of the Kyvos server instance.
Kyvos Username KYVOS_USERNAME --kyvos-username <username> Yes The Kyvos account username used to authenticate and log in to the Kyvos application. It will be overridden if using OAuth or basic-auth flow.
Kyvos Password KYVOS_PASSWORD --kyvos-password <password> Yes The corresponding password for the provided KYVOS_USERNAME, used for authentication with the Kyvos application. It will be overridden if using OAuth or basic-auth flow.
Prompt File Path KYVOS_PROMPT_FILE --kyvos-prompt-file <file_path> No Path to the .txt file containing the prompt for spark sql generation.
Default Folder KYVOS_DEFAULT_FOLDER --kyvos-default-folder <folder> No Folder containing multiple semantic models used for querying and metadata management in the Kyvos platform.
Transport --transport <stdio or sse> No stdio The type of communication transport to use: stdio for standard input/output or sse for Server-Sent Events.
SSL Verification VERIFY_SSL --verify-ssl <true or false> No false Flag to enable or disable SSL certificate verification when making HTTP requests to Kyvos. Set to true to enforce verification or false for self-signed certs.
Max Rows MAX_ROWS --max-rows <max rows> No 1000 Limit the number of rows in the query response
Environment File --env-file <file_path> No Path to an .env file from which to load environment variables, if not provided via arguments.
SSL Key SSL_KEY_FILE --ssl-key-file <file_path> No Path to the SSL private key file used to enable HTTPS on the server.
SSL Certificate SSL_CERTIFICATE_FILE --ssl-certificate-file <file_path> No Path to the SSL certificate file used to enable HTTPS on the server.
Auth type SERVER_AUTH_TYPE --server-auth-type <basic/oauth> No oauth Type of authorization user want to start the server
Port --port <port> No 8000 Port on which user want to run the server.
Hostname MCP_SERVER_HOSTNAME --mcp-server-hostname <machine_ip> No 127.0.0.1 The address (hostname or IP) where the user wants the MCP server to run.
MCP Kyvos Server Database Path MCP_KYVOS_DB_PATH - No HOME_PATH/.mcp_kyvos_server The path where the MCP server database will be created.

Usage

SSE Mode

  1. Start the MCP server with SSE transport.

    mcp-kyvos-server --transport sse --env-file /path/to/.env
    

    or provide arguments directly:

    mcp-kyvos-server \
      --kyvos-url https://your-kyvos-endpoint \
      --kyvos-username user123 \
      --kyvos-password pass123 
    
  2. Configure your client application to include the SSE server in its MCP server configuration. For example:

    {
      "mcpServers": {
        "kyvos-sse": {
          "url": "http://<machine_ip>:<port>/sse"
        }
      }
    }
    

STDIO Mode

  1. Configure your client application For example:
{
  "mcpServers": {
    "kyvos-stdio": {
      "command": "mcp-kyvos-server",
      "args": [
        "--env-file", "/path/to/.env"
      ]
    }
  }
}

OR

  {
    "mcpServers": {
      "kyvos-stdio": {
        "command": "mcp-kyvos-server",
        "args": [
          "--kyvos-url", "https://your-kyvos-endpoint",
          "--kyvos-username", "user123",
          "--kyvos-password", "pass123",
          "--kyvos-prompt-file", "./kyvos_prompt.txt"
        ]
      }
    }
  }

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_kyvos_server-1.0.0a2.tar.gz (33.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_kyvos_server-1.0.0a2-py3-none-any.whl (42.5 kB view details)

Uploaded Python 3

File details

Details for the file mcp_kyvos_server-1.0.0a2.tar.gz.

File metadata

  • Download URL: mcp_kyvos_server-1.0.0a2.tar.gz
  • Upload date:
  • Size: 33.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for mcp_kyvos_server-1.0.0a2.tar.gz
Algorithm Hash digest
SHA256 27e7ad628019b6d26187f72627c3c65eb965ee6786fe4c0f1461c2dd1651c221
MD5 47fa178bdbdb09d4d4df44ab34461bfd
BLAKE2b-256 d2f79755430a7a6d3512f20cb8b6e5ee17778a59a1f029e9d0247d82cc5d93e8

See more details on using hashes here.

File details

Details for the file mcp_kyvos_server-1.0.0a2-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_kyvos_server-1.0.0a2-py3-none-any.whl
Algorithm Hash digest
SHA256 2474f749207bd81919078392a6c65f7fff9234bac8c64e108fc1078215907d7c
MD5 6b6d1c5fb2a91f4b43a90aad5f9aaf49
BLAKE2b-256 4f7e26975a705429cdd0ec0931f58239fa110e16ea9639c6f329c5f4dd05eb68

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page