### README # Mintlify Starter Kit Click on `Use this template` to copy the Mintlify starter kit. The starter kit contains examples including - Guide pages - Navigation - Customizations - API Reference pages - Use of popular components ### Development Install the [Mintlify CLI](https://www.npmjs.com/package/mintlify) to preview the documentation changes locally. To install, use the following command ``` npm i mintlify ``` Run the following command at the root of your documentation (where docs.json is) ``` mintlify dev ``` ### Publishing Changes Install our Github App to auto propagate changes from your repo to your deployment. Changes will be deployed to production automatically after pushing to the default branch. Find the link to install on your dashboard. #### Troubleshooting - Mintlify dev isn't running - Run `mintlify install` it'll re-install dependencies. - Page loads as a 404 - Make sure you are running in a folder with `docs.json` --- ### Installation --- title: Installation description: Install Klavis SDK or use REST API directly icon: wrench --- ## SDK Installation ```bash Python pip install klavis ``` ```bash TypeScript npm install klavis ``` ## REST API ```bash curl -X POST "https://api.klavis.ai/mcp-server/instance/create" \ -H "Authorization: Bearer YOUR_KLAVIS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"serverName": "Gmail", "userId": "user123"}' ``` --- ### Introduction --- title: "Paving the road to AGI" mode: "wide" --- > *We build the worlds*
> *where intelligence learns to act*
> *one environment*
> *one trajectory*
> *one step at a time* --- ### Quickstart --- title: Quickstart description: Let your agent connect any tools reliably in minutes via MCP icon: rocket mode: "wide" --- ## Strata One MCP server that lets AI agents handle any tools progressively. Go to your Dashboard. Klavis enables all integrations for you by default. Click the ellipsis button if you want to disable a specific integration. Strata UI Dashboard Strata UI Dashboard Complete authentication by clicking the **"Authorize"** button. Most of the applications has OAuth support. Just follow the OAuth flow to authorize them. Some applications might need you to provide API keys or other kinds of secrets to authorize. Some applications don't have **"Authorize"** buttons. It means they don't require authentication and you can access them directly. We also provide an authentication handler tool in MCP that will prompt to authenticate when if you didn't authorize them. Strata OAuth Example Strata OAuth Example Add to your favorite MCP-supported clients, such as Cursor, Claude Code, VS Code, ChatGPT, etc. To get the MCP server URL and access token, click the **"Add to Other Clients"** button on the top right corner of the dashboard. Both the URL with access token and the direct URL provide you with the **same** MCP. But it's recommended to use the URL with access token as it's a more secure way to connect. DO NOT share your access token or direct URL publicly as they provide access to your connected accounts and data. Strata URL Strata URL **Prerequisites** Before you begin, [create an account](https://www.klavis.ai/home/api-keys) and get the API Key. ```bash pip pip install klavis ``` ```bash npm npm install klavis ``` `userId` specifies whose connected accounts and data you are accessing in Klavis. It should be a unique id for yourself, your team, or your organization. ```bash Curl curl -X POST "https://api.klavis.ai/mcp-server/strata/create" \ -H "Authorization: Bearer YOUR_KLAVIS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "userId": "user123", "servers": ["Gmail", "YouTube"] }' ``` ```python Python from klavis import Klavis from klavis.types import McpServerName klavis_client = Klavis(api_key="YOUR_KLAVIS_API_KEY") response = klavis_client.mcp_server.create_strata_server( user_id="user123", servers=[McpServerName.GMAIL, McpServerName.YOUTUBE], ) ``` ```typescript TypeScript import { Klavis } from 'klavis'; const klavis = new Klavis.Client({ apiKey: 'YOUR_KLAVIS_API_KEY' }); const strata = await klavis.strata.create({ userId: 'user123', servers: ['GMAIL', 'YOUTUBE'], }); ``` **Response Information**: The API returns: - `strataServerUrl`: The URL you'll use to connect your MCP client to the Strata MCP Server - `oauthUrls`: Authorization links for services that require OAuth authentication - `apiKeyUrls`: Links to configure API keys for services that use API key authentication Full Strata API endpoints ```bash Curl Copy and paste the OAuth URL into your web browser ``` ```python Python import webbrowser # Handle OAuth authorization if needed if response.oauth_urls: for server_name, oauth_url in response.oauth_urls.items(): webbrowser.open(oauth_url) input(f"Press Enter after completing {server_name} OAuth authorization...") ``` ```typescript TypeScript // Handle OAuth authorization if needed if (response.oauthUrls) { for (const [serverName, oauthUrl] of Object.entries(response.oauthUrls)) { if (typeof window !== 'undefined') { window.open(oauthUrl); } console.log(`Please complete ${serverName} OAuth authorization at: ${oauthUrl}`); // In a real application, you'd wait for OAuth completion via callback await new Promise(resolve => { console.log(`Press any key after completing ${serverName} OAuth authorization...`); // This would be replaced with proper OAuth flow handling resolve(null); }); } } ``` **Authentication Methods**: - **API Key**: See [API Key authentication guide](/auth/api-key) for details. - **OAuth**: See [OAuth authentication guide](/auth/oauth) for details. 🎉 **Your MCP Server URL is ready to use!** Once authentication is complete, you can use your MCP server URL with any MCP-compatible client. ``` /* Detailed source-code truncated for AI context efficiency. */ ``` ``` /* Detailed source-code truncated for AI context efficiency. */ ``` Coming soon ``` /* Detailed source-code truncated for AI context efficiency. */ ``` Visit https://github.com/Klavis-AI/klavis to view the source code and find more information ```bash pipx pipx install strata-mcp ``` ```bash pip pip install strata-mcp ``` Configure your MCP servers using the CLI tool. ```bash Add Server strata add ``` ```bash List Servers strata list ``` ```bash Enable Server strata enable ``` Start the Strata server to manage all your tools. ```bash Stdio Mode (Default) strata ``` ```bash HTTP/SSE Mode strata run --port 8080 ``` Use the Strata tool to add your AI client. ```bash Claude Code strata tool add claude ``` ```bash Cursor strata tool add cursor ``` ```bash VSCode strata tool add vscode ``` If you're interested in 1:1 mapping between API and tool using our MCP Server Instance, [check here](/legacy/instance). ## Next steps Integrate Klavis MCP Servers with leading AI platforms Explore available MCP servers Progressive tool discovery across apps REST endpoints and schemas --- ### CONTRIBUTING # Contributing to Klavis AI Thank you for your interest in contributing to Klavis AI! This document outlines the process and conventions we use for contributions, pull requests, and commit messages. ## Contributor License Agreement (CLA) Before we can accept your contributions, we require all contributors to sign our Contributor License Agreement (CLA). This is a one-time process. [Contributor License Agreement](https://cla-assistant.io/Klavis-AI/klavis) The CLA helps ensure that everyone who submits a contribution has the legal right to do so and agrees to the terms under which the contribution is accepted. Without this agreement, we cannot review or accept your contributions. ## Table of Contents - [Contributor License Agreement (CLA)](#contributor-license-agreement-cla) - [Code of Conduct](#code-of-conduct) - [Getting Started](#getting-started) - [Development Workflow](#development-workflow) - [Commit Message Convention](#commit-message-convention) - [Pull Request Process](#pull-request-process) - [Code Style Guidelines](#code-style-guidelines) - [Testing Guidelines](#testing-guidelines) - [License](#license) ## Code of Conduct We expect all contributors to follow our Code of Conduct. Please be respectful and inclusive in all interactions. ## Getting Started 1. Fork the repository 2. Clone your fork: `git clone https://github.com/yourusername/klavisAi.git` 3. Add the upstream remote: `git remote add upstream https://github.com/Klavis-AI/klavis.git` 4. Create a new branch for your feature or bug fix 5. Make your changes 6. Submit a pull request ## Development Workflow ### Monorepo Structure The project is organized as a monorepo with multiple MCP servers and clients: - `mcp_servers/` - Contains individual Model Context Protocol servers - `mcp_clients/` - Contains clients that connect to MCP servers When making changes, be mindful of the scope of your change and any potential impacts on other components. ### Building MCP Servers If you're interested in contributing a new MCP server to the project, we have a comprehensive guide to help you get started: **[📖 MCP Server Guide](MCP_SERVER_GUIDE.md)** - A complete guide covering: - What MCP servers are and how they work - How to design effective tools for AI agents - Development best practices and testing requirements - Step-by-step instructions with examples This guide is essential reading for anyone wanting to build high-quality MCP servers that integrate well with AI applications. ## Commit Message Convention We follow a simplified version of the [Conventional Commits](https://www.conventionalcommits.org/) specification for commit messages. Format: ``` (): ``` ### Type Must be one of the following: - `feat`: A new feature - `fix`: A bug fix - `docs`: Documentation only changes - `style`: Changes that do not affect the meaning of the code (formatting, etc.) - `refactor`: A code change that neither fixes a bug nor adds a feature - `perf`: A code change that improves performance - `test`: Adding missing or correcting existing tests - `chore`: Changes to the build process or auxiliary tools - `ci`: Changes to CI configuration files and scripts ### Scope The scope is optional and can be anything specifying the place of the commit change. For example: `slack`, `github`, `supabase`, etc. ### Subject The subject contains a succinct description of the change: - Use the imperative, present tense: "change" not "changed" nor "changes" - Don't capitalize the first letter - No period (.) at the end ### Examples ``` feat(slack): add user profile lookup functionality ``` ``` fix(github): resolve PR comment retrieval issue ``` ``` docs(core): update installation instructions ``` ``` refactor(supabase): simplify authentication flow ``` ## Pull Request Process 1. **Create a descriptive PR title** following the commit message format: ``` (): ``` 2. **Fill in the PR template** with: - A clear description of the changes - The motivation for the changes - Any additional context that might be helpful - Screenshots if applicable 3. **Link related issues** using GitHub keywords like "Closes #123" or "Fixes #456" 4. **Keep PRs focused and reasonably sized** - Split large changes into smaller, more manageable PRs when possible 5. **Update documentation** if your changes affect the public API or user experience 6. **Add tests** for new features or bug fixes 7. **Make sure all tests pass** and code style checks complete successfully 8. **Request reviews** from appropriate team members 9. **Address review feedback** promptly and thoroughly 10. **Rebase your branch** on the latest main branch before merging ## Testing Guidelines - Write tests for all new features and bug fixes - Maintain or improve code coverage - Test across multiple Node.js/Python/go versions when appropriate ## License By contributing to Klavis AI, you agree that your contributions will be licensed under the project's [Apache 2.0 license](LICENSE). ---