### Development Setup with uv Source: https://github.com/obot-platform/tools/blob/main/google/drive/README.md Installs dependencies and runs the server using uv for development purposes. ```bash uv pip install uv run server.py ``` -------------------------------- ### Project Setup and Running Source: https://github.com/obot-platform/tools/blob/main/knowledge/data-sources/notion/README.md Instructions for setting up the Notion SDK TypeScript starter project, including creating a Notion integration, configuring the API token, installing dependencies, and running the main script. ```bash echo "NOTION_TOKEN=[your token here]" > .env npm install npm start ``` -------------------------------- ### Development Setup with uv Source: https://github.com/obot-platform/tools/blob/main/google/calendar/README.md Sets up the development environment and runs the server using uv. Includes installing dependencies and running the server script. ```bash uv pip install uv run server.py ``` -------------------------------- ### Run GPTScript Example Source: https://github.com/obot-platform/tools/blob/main/knowledge/README.md Executes a GPTScript example that utilizes the knowledge tool. Assumes the 'knowledge' binary is in the system's PATH. ```gptscript gptscript examples/client.gpt ``` -------------------------------- ### Installation with uvx Source: https://github.com/obot-platform/tools/blob/main/google/calendar/README.md Installs the Google Calendar MCP from a local directory using the uvx tool. ```bash uvx --from . google-calendar-mcp ``` -------------------------------- ### Installation using uvx Source: https://github.com/obot-platform/tools/blob/main/google/drive/README.md Installs the Obot Google Drive MCP server from a local directory using the uvx tool. ```bash uvx --from . obot-google-drive-mcp ``` -------------------------------- ### Run Local Example Client Source: https://github.com/obot-platform/tools/blob/main/google/gmail/README.md Instructions to run a local client example for the Obot Gmail MCP Server. Requires setting the GOOGLE_OAUTH_TOKEN environment variable. ```bash export GOOGLE_OAUTH_TOKEN=xxx uv run example_client.py ``` -------------------------------- ### Install Dependencies (Bash) Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md Installs project dependencies using either 'uv sync' for the uv package manager or 'pip install -e .' for pip. Ensures all required libraries are available for local development. ```bash uv sync # or with pip: pip install -e . ``` -------------------------------- ### Docker Compose for Development Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md Command to start the Knowledge MCP services using Docker Compose, which includes an OAuth proxy for authentication. ```bash docker-compose up ``` -------------------------------- ### Install Obot Gmail MCP Server with uv (Development) Source: https://github.com/obot-platform/tools/blob/main/google/gmail/README.md Command to install the Obot Gmail MCP Server in editable mode using uv for development purposes. ```bash uv pip install -e . ``` -------------------------------- ### Run the Server (Bash) Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md Starts the Knowledge MCP Server using the 'uv run' command or directly with 'python -m app.main'. This command executes the main application file. ```bash uv run python -m app.main # or: python -m app.main ``` -------------------------------- ### NPM Scripts for Development Source: https://github.com/obot-platform/tools/blob/main/knowledge/data-sources/notion/README.md Commonly used NPM scripts for managing the TypeScript project, including starting the application, type checking, code formatting, and building the project. ```bash npm start npm run typecheck npm run format npm run build ``` -------------------------------- ### Docker Compose Installation Source: https://github.com/obot-platform/tools/blob/main/google/calendar/README.md Instructions for installing and running the Obot Google Calendar MCP Server using Docker Compose. Requires setting Google OAuth Client ID and Secret environment variables. ```bash export OAUTH_CLIENT_ID=xxx export OAUTH_CLIENT_SECRET=xxx docker-compose up ``` -------------------------------- ### Start PostgreSQL with pgvector (Bash) Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md Launches a PostgreSQL database with the pgvector extension enabled using Docker. This is essential for storing and querying vector embeddings. ```bash docker run -d \ --name postgres-pgvector \ -e POSTGRES_DB=postgres \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=password \ -p 5432:5432 \ pgvector/pgvector:0.8.0-pg15 ``` -------------------------------- ### Knowledge Tool Server Mode Source: https://github.com/obot-platform/tools/blob/main/knowledge/README.md Starts the knowledge tool in server mode and demonstrates client operations using a remote server URL. Note: Server mode is not fully implemented. ```bash knowledge server export KNOW_SERVER_URL=http://localhost:8000/v1 knowledge create-dataset foobar knowledge ingest -d foobar README.md knowledge retrieve -d foobar "Which filetypes are supported?" knowledge delete-dataset foobar ``` -------------------------------- ### Docker Compose Installation Source: https://github.com/obot-platform/tools/blob/main/google/drive/README.md Instructions for setting up and running the Obot Google Drive MCP Server using Docker Compose. Requires exporting Google OAuth Client ID and Secret. ```bash export OAUTH_CLIENT_ID=xxx export OAUTH_CLIENT_SECRET=xxx docker-compose up ``` -------------------------------- ### FastMCP Python Client Usage Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md Example of using the FastMCP Python client to interact with the Knowledge MCP services. Demonstrates creating a knowledge set, ingesting a file, and performing a query. ```python from fastmcp import Client from fastmcp.client.transports import StreamableHttpTransport async with Client(transport=StreamableHttpTransport( "http://localhost:9000/mcp/knowledge", headers={"x-forwarded-user": "user123"} )) as client: # Create knowledge set result = await client.call_tool("create_knowledge_set", {{}}) # Ingest file result = await client.call_tool("ingest_file", {{ "knowledge_set_id": "...", "filename": "document.pdf", "content": "base64-encoded-content" }}) # Query result = await client.call_tool("query", {{ "knowledge_set_id": "...", "query_text": "search query" }}) ``` -------------------------------- ### Weekly Recurrence with End Date Source: https://github.com/obot-platform/tools/blob/main/microsoft365/outlook/calendar/pkg/recurrence/doc.md Example of creating a weekly recurring event from a start date until a specified end date. Combines a weekly pattern with an endDate range. ```json { "recurrence": { "pattern": { "type": "weekly", "interval": 1, "daysOfWeek": [ "Monday" ] }, "range": { "type": "endDate", "startDate": "2017-09-04", "endDate": "2017-12-31" } } } ``` -------------------------------- ### Install Obot Gmail MCP Server with Docker Compose Source: https://github.com/obot-platform/tools/blob/main/google/gmail/README.md Instructions to set up and run the Obot Gmail MCP Server using Docker Compose. Requires exporting Google OAuth Client ID and Secret. ```bash export OAUTH_CLIENT_ID=xxx export OAUTH_CLIENT_SECRET=xxx docker-compose up ``` -------------------------------- ### Daily Recurrence Pattern Examples Source: https://github.com/obot-platform/tools/blob/main/microsoft365/outlook/calendar/pkg/recurrence/doc.md Examples of JSON configurations for daily recurrence patterns. The 'interval' property specifies the number of days between occurrences, and 'type' must be 'daily'. ```json { "pattern": { "type": "daily", "interval": 1 } } ``` ```json { "pattern": { "type": "daily", "interval": 3 } } ``` -------------------------------- ### Environment Variables Setup Source: https://github.com/obot-platform/tools/blob/main/knowledge/data-sources/onedrive/README.md Sets the necessary environment variables for the OneDrive sync application. GPTSCRIPT_GRAPH_MICROSOFT_COM_BEARER_TOKEN is required for authentication with Microsoft Graph API, and GPTSCRIPT_WORKSPACE_DIR specifies the local directory for downloaded files. ```sh export GPTSCRIPT_GRAPH_MICROSOFT_COM_BEARER_TOKEN= export GPTSCRIPT_WORKSPACE_DIR= ``` -------------------------------- ### Example AES-GCM Encryption Configuration Source: https://github.com/obot-platform/tools/blob/main/credential-stores/README.md This YAML configuration demonstrates how to set up AES-GCM encryption for GPTScript credentials, using a local secret key. It follows the Kubernetes EncryptionConfiguration standard. ```yaml kind: EncryptionConfiguration apiVersion: apiserver.config.k8s.io/v1 resources: - resources: # Note that the configuration here must be EXACTLY 'credentials' - credentials providers: - aesgcm: keys: - name: myKey secret: ``` -------------------------------- ### Weekly Recurrence Pattern Examples Source: https://github.com/obot-platform/tools/blob/main/microsoft365/outlook/calendar/pkg/recurrence/doc.md Examples of JSON configurations for weekly recurrence patterns. 'interval' defines the number of weeks between occurrences, 'daysOfWeek' specifies the days, and 'type' must be 'weekly'. 'firstDayOfWeek' is optional. ```json { "pattern": { "type": "weekly", "interval": 1, "daysOfWeek": [ "Thursday" ] } } ``` ```json { "pattern": { "type": "weekly", "interval": 2, "daysOfWeek": [ "Monday", "Tuesday" ] } } ``` -------------------------------- ### Absolute Monthly Recurrence Pattern Examples Source: https://github.com/obot-platform/tools/blob/main/microsoft365/outlook/calendar/pkg/recurrence/doc.md Examples of JSON configurations for absolute monthly recurrence patterns. 'dayOfMonth' sets the specific day, 'interval' the number of months between occurrences, and 'type' must be 'absoluteMonthly'. ```json { "pattern": { "type": "absoluteMonthly", "interval": 1, "dayOfMonth": 15 } } ``` ```json { "pattern": { "type": "absoluteMonthly", "interval": 3, "dayOfMonth": 7 } } ``` -------------------------------- ### Obot-Get-State Response Schema and Example Source: https://github.com/obot-platform/tools/blob/main/docs/auth-providers.md Defines the JSON schema for the response body that an auth provider must return for the /obot-get-state endpoint. It includes user authentication details. ```APIDOC APIDOC: Endpoint: /obot-get-state Method: POST (implied by request body) Description: Expected response format from an auth provider detailing the authenticated user. Response Body Schema: type: object properties: accessToken: { type: string, description: "The access token for the user." } preferredUsername: { type: string, description: "The preferred username of the user." } user: { type: string, description: "The identifier for the user." } email: { type: string, format: "email", description: "The email address of the user." } required: ["accessToken", "preferredUsername", "user", "email"] additionalProperties: false Example Response: { "accessToken": "xyz", "preferredUsername": "johndoe", "user": "johndoe", "email": "johndoe@example.com" } Error Handling: - Return a 400 status code if the 'obot_access_token' cookie is missing or invalid. ``` -------------------------------- ### Relative Monthly Recurrence Pattern Example Source: https://github.com/obot-platform/tools/blob/main/microsoft365/outlook/calendar/pkg/recurrence/doc.md An example of a JSON configuration for a relative monthly recurrence pattern. 'interval' specifies the number of months between occurrences, 'daysOfWeek' indicates the day(s) of the week, 'index' specifies the occurrence within the month (e.g., 'second'), and 'type' must be 'relativeMonthly'. ```json { "pattern": { "type": "relativeMonthly", "interval": 1, "daysOfWeek": [ "Wednesday" ], "index": "second" } } ``` -------------------------------- ### Key Dependencies Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md Lists the core libraries and frameworks used in the project, including those for server frameworks, database interaction, AI model handling, and data processing. ```text - FastMCP: Model Context Protocol server framework - SQLAlchemy: Database ORM with async support - pgvector: PostgreSQL vector extension - Pydantic: Data validation and settings management - MarkItDown: Universal document text extraction - Chonkie: Intelligent text chunking - HTTPX: Async HTTP client for OpenAI API ``` -------------------------------- ### Run Website Scraper Source: https://github.com/obot-platform/tools/blob/main/knowledge/data-sources/website/README.md Executes the Go application to scrape website content. It requires a configuration file to specify the target URLs and the output directory. ```bash go run main.go ``` -------------------------------- ### Project Requirements Source: https://github.com/obot-platform/tools/blob/main/google/youtube/requirements.txt Lists the project dependencies and requirements. ```requirements.txt -r ../../requirements.txt ``` -------------------------------- ### Numbered Recurrence Range Source: https://github.com/obot-platform/tools/blob/main/microsoft365/outlook/calendar/pkg/recurrence/doc.md Sets a recurrence range for an event to repeat a fixed number of times from a specified start date. ```json { "range": { "type": "numbered", "startDate": "2017-04-02", "numberOfOccurrences": 10 } } ``` -------------------------------- ### Build Knowledge Tool Source: https://github.com/obot-platform/tools/blob/main/knowledge/README.md Builds the knowledge tool using make. Requires Go 1.22+. ```bash make build ``` -------------------------------- ### Project Stack Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md A summary of the core technologies used to build the project. ```text Built with ❤️ using FastMCP, PostgreSQL, and OpenAI ``` -------------------------------- ### No End Recurrence Range Source: https://github.com/obot-platform/tools/blob/main/microsoft365/outlook/calendar/pkg/recurrence/doc.md Defines a recurrence range that continues indefinitely after a start date. The event occurs on all days fitting the pattern. Requires startDate. ```json { "range": { "type": "noEnd", "startDate": "2017-05-15" } } ``` -------------------------------- ### Relative Monthly Recurrence with No End Source: https://github.com/obot-platform/tools/blob/main/microsoft365/outlook/calendar/pkg/recurrence/doc.md Example of creating a recurring event on the first Thursday of every other month, continuing indefinitely. Uses a relative monthly pattern with a noEnd range. ```json { "recurrence": { "pattern": { "type": "relativeMonthly", "interval": 2, "daysOfWeek": [ "Thursday" ], "index": "first" }, "range": { "type": "noEnd", "startDate": "2017-08-29" } } } ``` -------------------------------- ### Project Structure Overview Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md Directory structure of the Knowledge MCP project, outlining key components and their locations. ```text knowledge-mcp/ ├── app/ │ ├── __init__.py │ ├── main.py # FastMCP server and endpoints │ ├── config.py # Centralized configuration │ ├── embeddings.py # OpenAI embedding integration │ ├── vector_db.py # PostgreSQL/pgvector operations │ ├── db_schema.py # Pydantic models │ └── text_processing.py # File processing and chunking ├── docker-compose.yml # Development environment ├── Dockerfile # Production container ├── pyproject.toml # Dependencies and project config └── README.md # This file ``` -------------------------------- ### Project Requirements Source: https://github.com/obot-platform/tools/blob/main/google/docs/requirements.txt Lists the project dependencies and requirements. ```requirements.txt -r ../../requirements.txt ``` -------------------------------- ### Knowledge Tool Client - Standalone Operations Source: https://github.com/obot-platform/tools/blob/main/knowledge/README.md Demonstrates standalone client operations for creating datasets, ingesting files, retrieving information, and deleting datasets. ```bash knowledge create-dataset foobar knowledge ingest -d foobar README.md knowledge retrieve -d foobar "Which filetypes are supported?" knowledge delete-dataset foobar ``` -------------------------------- ### Running the OneDrive Sync Application Source: https://github.com/obot-platform/tools/blob/main/knowledge/data-sources/onedrive/README.md Executes the Knowledge OneDrive Sync application using gptscript. The application will then process the shared links defined in metadata.json and download the content to the directory specified by GPTSCRIPT_WORKSPACE_DIR. ```sh gptscript github.com/obot-platform/tools/knowledge-onedrive-sync ``` -------------------------------- ### Integration Testing Client Source: https://github.com/obot-platform/tools/blob/main/google/calendar/README.md Instructions for running a local client for integration testing, which requires a Google OAuth token to be set as an environment variable. ```bash export GOOGLE_OAUTH_TOKEN=xxx uv run example_client.py ``` -------------------------------- ### Unit Testing with pytest Source: https://github.com/obot-platform/tools/blob/main/google/drive/README.md Executes unit tests for the Obot Google Drive MCP Server using pytest and uv. ```bash uv run python -m pytest ``` -------------------------------- ### Set Database URL (Bash) Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md Configures the DATABASE_URL environment variable to connect to the PostgreSQL instance. This variable specifies the database driver, credentials, host, and database name. ```bash export DATABASE_URL="postgresql+asyncpg://postgres:password@localhost:5432/postgres" ``` -------------------------------- ### Run Obot Gmail MCP Server with uvx Source: https://github.com/obot-platform/tools/blob/main/google/gmail/README.md Commands to run the Obot Gmail MCP Server directly using uvx. Supports both standard HTTP and stdio server modes. ```bash # Run directly from the current directory uvx --from . obot-gmail-mcp or stdio server: uvx --from . obot-gmail-mcp-stdio ``` -------------------------------- ### Unit Testing with pytest Source: https://github.com/obot-platform/tools/blob/main/google/calendar/README.md Executes unit tests for the server using pytest and uv. ```bash uv run python -m pytest ``` -------------------------------- ### Run Obot Gmail MCP Server with uv Source: https://github.com/obot-platform/tools/blob/main/google/gmail/README.md Command to run the Obot Gmail MCP Server using uv, typically for local execution. ```bash uv run server.py ``` -------------------------------- ### Run Unit Tests with pytest Source: https://github.com/obot-platform/tools/blob/main/google/gmail/README.md Command to execute unit tests for the Obot Gmail MCP Server using pytest and uv. ```bash uv run python -m pytest ``` -------------------------------- ### Set Environment Variables (Bash) Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md Sets the necessary environment variables for OpenAI API key and Google OAuth credentials. These are crucial for authentication and accessing external services. ```bash export OPENAI_API_KEY="your-openai-api-key-here" export OAUTH_CLIENT_ID=xxx export OAUTH_CLIENT_SECRET=xxx ``` -------------------------------- ### JavaScript for Obot Platform Redirection Source: https://github.com/obot-platform/tools/blob/main/auth-providers-common/templates/error.html This JavaScript code handles user interaction for redirection within the Obot platform. It attaches an event listener to a 'back' button, which retrieves a previously stored redirect URL from local storage and navigates the user to that URL. ```javascript document.addEventListener('DOMContentLoaded', function() { document.getElementById('back-btn').addEventListener('click', function() { const preAuthUrl = localStorage.getItem('preAuthRedirect'); window.location.href = preAuthUrl; }); }); ``` -------------------------------- ### Obot Platform Content Placeholders Source: https://github.com/obot-platform/tools/blob/main/auth-providers-common/templates/error.html This snippet shows the use of template placeholders for dynamic content rendering in the Obot platform. It includes placeholders for status codes, titles, messages, and redirection links, allowing for flexible content management. ```html ![Obot Logo](/user/images/obot-icon-grumpy-blue.svg) {{.StatusCode}} {{.Title}} ========== {{ if .Message }} {{.Message}} {{ end }} Oops! You are not authorized to access this page or something went wrong. Please try logging in again or contact an administrator. {{ if .Redirect }} Go Back {{ end }} ``` -------------------------------- ### Metadata Configuration for Website Scraping Source: https://github.com/obot-platform/tools/blob/main/knowledge/data-sources/website/README.md A JSON file used to configure the website scraping tool. It specifies the URLs to be scraped and the local directory where the markdown files will be stored. ```json { "input": { "urls": ["https://coral.org"] } } ``` -------------------------------- ### Security Considerations Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md Outlines the security measures implemented, focusing on data isolation, input validation, credential management, and protection against common vulnerabilities. ```text - User Isolation: All data is isolated by user ID - Input Validation: Comprehensive validation via Pydantic - API Key Security: Secure handling of OpenAI credentials - SQL Injection: Protected via SQLAlchemy ORM - Rate Limiting: OpenAI API rate limit handling with exponential backoff ``` -------------------------------- ### Python Project Dependencies Source: https://github.com/obot-platform/tools/blob/main/requirements.txt This section lists the Python packages and their specific versions used in the project. It covers a wide range of functionalities including asynchronous programming, web frameworks, cloud SDKs (Azure, Google, AWS), AI/ML libraries (OpenAI, Anthropic, Google GenAI), data manipulation, and utility tools. ```python aiohappyeyeballs==2.6.1 aiohttp==3.11.16 aiosignal==1.3.2 annotated-types==0.7.0 anthropic==0.49.0 anthropic[bedrock]==0.49.0 anthropic_common @ git+https://github.com/obot-platform/tools.git@f075bcef5c63ab206d3c0d5b12cd2dcf891402b4#subdirectory=anthropic-model-provider anyio==4.9.0 attrs==25.3.0 azure-identity==1.21.0 azure-mgmt-cognitiveservices==13.6.0 azure-mgmt-resource==23.3.0 beautifulsoup4==4.13.3 boto3==1.37.26 cachetools==5.5.2 certifi==2024.7.4 charset-normalizer==3.3.2 distro==1.9.0 fastapi==0.115.12 filetype==1.2.0 frozenlist==1.5.0 google==3.0.0 google-api-python-client==2.166.0 google-auth==2.38.0 google-auth-httplib2==0.2.0 google-auth-oauthlib==1.2.1 google-genai==1.2.0 gptscript @ git+https://github.com/gptscript-ai/py-gptscript.git@5c00a24fc28af472202df8763d2e99b10d6db097 gspread==6.2.0 h11==0.14.0 html2text==2024.2.26 httpcore==1.0.7 httpx==0.27.0 hubspot-api-client==11.1.0 idna==3.7 jiter==0.7.0 llinkedin-api-client==0.3.0 markdownify==1.1.0 mistune==3.1.1 # BSD-3-Clause License multidict==6.2.0 openai==1.70.0 pandas==2.2.3 pillow==11.1.0 propcache==0.3.1 pyasn1==0.6.1 pyasn1_modules==0.4.2 pydantic==2.9.2 pydantic_core==2.23.4 Pygments==2.19.1 python-dateutil==2.9.0.post0 pytz==2025.2 requests==2.32.2 rfc3339-validator==0.1.4 rsa==4.9 # setuptools dep fixes https://github.com/HubSpot/hubspot-api-python/issues/303 setuptools==78.1.0 simple-salesforce==1.12.6 sniffio==1.3.1 soupsieve==2.6 tavily-python==0.5.1 textstat==0.7.5 tiktoken==0.9.0 tqdm==4.66.3 typing_extensions==4.13.1 urllib3==2.2.2 uvicorn[standard]==0.34.0 voyageai==0.3.2 websockets==14.2 wheel==0.45.1 yake==0.4.8 yarl==1.18.3 youtube-transcript-api==0.6.2 yt-dlp==2024.11.4 ``` -------------------------------- ### Performance Optimizations Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md Details the strategies employed to enhance the project's performance, including asynchronous operations, efficient resource management, and optimized data processing techniques. ```text - Async Architecture: Non-blocking I/O for high concurrency - Connection Pooling: Efficient database connections - Vector Indexing: Fast similarity search with IVFFlat - Batch Processing: Efficient embedding generation - Caching: Duplicate detection and content hashing ``` -------------------------------- ### Run Wordpress Locally with Docker Source: https://github.com/obot-platform/tools/blob/main/wordpress/README.md This snippet defines a Docker Compose configuration to run a Wordpress site and its MySQL database locally. It maps ports, sets environment variables for database connection, and configures volumes for data persistence. After running, access the site at http://localhost:8070. ```yaml services: wordpress: image: wordpress restart: always ports: - 8070:80 environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: dbuser WORDPRESS_DB_PASSWORD: dbpassword WORDPRESS_DB_NAME: exampledb WORDPRESS_CONFIG_EXTRA: | define('WP_ENVIRONMENT_TYPE', 'local'); volumes: - wordpress:/var/www/html db: image: mysql:8.0 restart: always environment: MYSQL_DATABASE: exampledb MYSQL_USER: dbuser MYSQL_PASSWORD: dbpassword MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: - db:/var/lib/mysql volumes: wordpress: db: ``` -------------------------------- ### HTML and CSS for Obot Platform UI Source: https://github.com/obot-platform/tools/blob/main/auth-providers-common/templates/error.html This snippet contains the HTML structure and CSS styling for the Obot platform's user interface, including error pages, speech bubbles, and responsive design elements. It defines styles for various components like status codes, messages, buttons, and layout adjustments for different screen sizes and color schemes. ```html body { font-family: "Inter", serif; font-optical-sizing: auto; height: 100vh; margin: 0; } .error-box { align-items: flex-end; display: flex; gap: 24px; justify-content: flex-end; } .error-box img { height: 280px; width: 280px; } p { line-height: 1.3rem; margin: 0; } .status-code { font-size: 7.5rem; font-weight: 600; line-height: 1; } .status-title { font-size: 1.5rem; font-weight: 600; margin-top: 0; margin-bottom: 0; } .centered { align-items: center; display: flex; flex-direction: column; height: 100%; justify-content: center; } .centered-content { display: flex; flex-direction: column; gap: 24px; } .speech-bubble { align-items: center; background: #f2f2f3; border-radius: .4em; display: flex; flex-direction: column; justify-content: center; margin-bottom: 24px; padding: 18px 24px; position: relative; } .speech-bubble h1 { margin: 0; } .speech-bubble:after { content: ''; position: absolute; left: 0; top: 50%; width: 0; height: 0; border: 40px solid transparent; border-right-color: #f2f2f3; border-left: 0; border-bottom: 0; margin-top: -20px; margin-left: -40px; } button { border: 0; border-radius: 36px; padding: 0.5rem 1rem; font-size: 0.875rem; line-height: 1.25rem; font-weight: 500; cursor: pointer; width: 100%; } button:hover { opacity: 0.8; } .primary { background-color: #4f7df3; color: #ffffff; } .secondary:hover { opacity: 0.6; } .columns { align-self: center; display: flex; gap: 24px; justify-self: center; } .column, form { width: 200px; } .message { align-self: center; justify-self: center; max-width: 600px; width: 100%; text-align: center; } form button { width: 100%; } .card-content { font-size: 0.75rem; padding: 0 12px 8px 12px; max-width: 600px; } .card-content .content { background-color: rgba(239, 68, 68, 0.2); border: 1px solid #ef4444; border-radius: 8px; padding: 12px; } @media (max-width: 640px) { section { padding: 0 12px; } .error-box { align-items: center; justify-content: center; } .error-box img { height: 150px; width: 150px; } .status-code { font-size: 3.5rem; } .status-title { font-size: 0.875rem; } .columns { flex-direction: column; width: 100%; } .column, form { width: 100%; } .speech-bubble { margin-bottom: -16px; } .card-content { max-width: 100%; } } @media (prefers-color-scheme: dark) { body { background-color: #030712; color: #d7d8db; } .speech-bubble { background-color: #242528; } .speech-bubble:after { border-right-color: #242528; } .primary { color: #030712; } } ``` -------------------------------- ### GPTScript Credential Helper Environment Variables Source: https://github.com/obot-platform/tools/blob/main/credential-stores/README.md Environment variables that can be used to configure GPTScript credential helpers. These variables allow overriding default file paths and database connection strings. ```APIDOC Environment Variables: All Helpers: - GPTSCRIPT_ENCRYPTION_CONFIG_FILE: Overrides the path to the encryption configuration file. SQLite: - GPTSCRIPT_SQLITE_FILE: Overrides the path to the SQLite file. PostgreSQL: - GPTSCRIPT_POSTGRES_DSN: (Required) The DSN (connection string) for the PostgreSQL database. ``` -------------------------------- ### Slack Write Module Source: https://github.com/obot-platform/tools/blob/main/slack/README.md Provides functionality to write messages and data to Slack workspaces. This module is intended to be used as part of a larger application and should not be invoked directly. ```Go package main import ( "fmt" "github.com/gptscript-ai/tools/slack/write" ) func main() { // Example usage (conceptual): // err := write.Message("channel-id", "Hello from GPTScript!") // if err != nil { // fmt.Printf("Error sending message: %v\n", err) // return // } // fmt.Println("Message sent successfully.") fmt.Println("Slack write module is ready.") } ``` -------------------------------- ### Application Output Status Source: https://github.com/obot-platform/tools/blob/main/knowledge/data-sources/onedrive/README.md Represents the typical output structure of the Knowledge OneDrive Sync application, indicating the status of the synchronization process, any errors encountered, and details about downloaded files and folders. ```json { "output": { "status": "Done", "error": "", "files": {}, "folders": {} } } ``` -------------------------------- ### Slack Read Module Source: https://github.com/obot-platform/tools/blob/main/slack/README.md Provides functionality to read messages and data from Slack workspaces. This module is intended to be used as part of a larger application and should not be invoked directly. ```Go package main import ( "fmt" "github.com/gptscript-ai/tools/slack/read" ) func main() { // Example usage (conceptual): // messages, err := read.Messages("channel-id") // if err != nil { // fmt.Printf("Error reading messages: %v\n", err) // return // } // fmt.Printf("Read %d messages\n", len(messages)) fmt.Println("Slack read module is ready.") } ``` -------------------------------- ### Obot Basic Auth Configuration for Wordpress API Source: https://github.com/obot-platform/tools/blob/main/wordpress/README.md Details on how to configure basic authentication for the Obot platform when interacting with the Wordpress API. It specifies the required username, password, and the URL of the Wordpress site, which can be a local URL or a hosted domain. ```APIDOC Obot Wordpress API Authentication: username: The username created during the initial Wordpress site setup. password: The password for the Wordpress user. url: The URL of the Wordpress site. Examples: - Local: http://localhost:8070 - Hosted: https://example.wpenginepowered.com Prerequisites: - Wordpress site must be running. - User account must exist. - Permalinks must be configured in Wordpress Settings (Settings -> Permalinks -> Non-plain structure). - An Application Password must be generated for the user (Users -> Edit User -> Application Passwords -> Add New). ``` -------------------------------- ### Knowledge Set Management API (Python) Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md Provides Python functions for managing knowledge sets. Includes creating, listing, and deleting isolated knowledge collections. These functions interact with the server's backend. ```python create_knowledge_set() -> KnowledgeSetInfo # Creates a new isolated knowledge collection. list_knowledge_sets() -> List[KnowledgeSetInfo] # Lists all knowledge sets for the authenticated user. delete_knowledge_set(knowledge_set_id: str) -> dict # Deletes a knowledge set and all associated data. ``` -------------------------------- ### GPTScript Credential Store Configuration Source: https://github.com/obot-platform/tools/blob/main/credential-stores/README.md Configuration instructions for GPTScript to use different credential store backends. This outlines how to specify SQLite or PostgreSQL as the credential storage mechanism. ```APIDOC GPTScript Configuration: To use SQLite: Set your GPTScript configuration to use `sqlite` as the credential store. To use PostgreSQL: Set your GPTScript configuration to use `postgres` as the credential store. Note: By default, all credentials are stored unencrypted. ``` -------------------------------- ### Knowledge Set File Operations Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md API endpoints for managing files within a knowledge set, including ingestion, listing, and removal. Ingesting a file involves decoding, text extraction, chunking, embedding generation, and storage. ```APIDOC ingest_file(knowledge_set_id: str, filename: str, content: str) -> FileUploadResponse Uploads and processes a file through the complete pipeline: Decode base64 content, Extract text using MarkItDown, Chunk text intelligently, Generate embeddings via OpenAI, Store in vector database, Handle duplicates and versioning. Supported formats: PDF, DOCX, TXT, MD, HTML, and more via MarkItDown. list_files(knowledge_set_id: str) -> List[FileInfo] Lists all files in a knowledge set with metadata. remove_file(knowledge_set_id: str, file_id: str) -> dict Deletes a file and all its associated chunks. ``` -------------------------------- ### Obot Auth Provider Metadata Configuration Source: https://github.com/obot-platform/tools/blob/main/docs/auth-providers.md Defines the required and optional environment variables for an Obot authentication provider within the tool's metadata. These variables are crucial for configuring the provider's connection details and security settings. ```shell Metadata: envVars: OBOT_GITHUB_AUTH_PROVIDER_CLIENT_ID,OBOT_GITHUB_AUTH_PROVIDER_CLIENT_SECRET,OBOT_AUTH_PROVIDER_COOKIE_SECRET,OBOT_AUTH_PROVIDER_EMAIL_DOMAINS Metadata: optionalEnvVars: OBOT_GITHUB_AUTH_PROVIDER_TEAMS,OBOT_GITHUB_AUTH_PROVIDER_ORG,OBOT_GITHUB_AUTH_PROVIDER_REPO,OBOT_GITHUB_AUTH_PROVIDER_TOKEN,OBOT_GITHUB_AUTH_PROVIDER_ALLOW_USERS ``` -------------------------------- ### PostgreSQL + pgvector Schema Source: https://github.com/obot-platform/tools/blob/main/knowledge-mcp/README.md SQL schema for storing knowledge set information, file metadata, and vector chunks in a PostgreSQL database with pgvector extension. ```sql -- Knowledge Sets (user isolation) CREATE TABLE knowledge_sets ( user_id VARCHAR PRIMARY KEY, knowledge_set_id VARCHAR PRIMARY KEY, created_at TIMESTAMP DEFAULT NOW() ); -- File Metadata CREATE TABLE files ( user_id VARCHAR, knowledge_set_id VARCHAR, file_id VARCHAR, file_metadata JSONB, created_at TIMESTAMP DEFAULT NOW(), PRIMARY KEY (user_id, knowledge_set_id, file_id) ); -- Vector Chunks CREATE TABLE chunks ( user_id VARCHAR, knowledge_set_id VARCHAR, file_id VARCHAR, chunk_id VARCHAR, embedding VECTOR(1536), chunk_metadata JSONB, created_at TIMESTAMP DEFAULT NOW(), PRIMARY KEY (user_id, knowledge_set_id, file_id, chunk_id) ); ``` -------------------------------- ### Default SQLite File Locations Source: https://github.com/obot-platform/tools/blob/main/credential-stores/README.md Default locations for the SQLite credential database file on macOS and Linux. The location may change if the XDG_CONFIG_HOME environment variable is set. ```APIDOC Default SQLite File Locations: macOS: - ~/Library/Application Support/gptscript/credentials.db - If XDG_CONFIG_HOME is set: $XDG_CONFIG_HOME/gptscript/credentials.db Linux: - $XDG_CONFIG_HOME/gptscript/credentials.db ``` -------------------------------- ### Metadata JSON Structure Source: https://github.com/obot-platform/tools/blob/main/knowledge/data-sources/onedrive/README.md Defines the structure for the metadata.json file, which contains the input shared links for the OneDrive synchronization process. The 'sharedLinks' array lists the URLs of the OneDrive shared content to be downloaded. ```json { "input": { "sharedLinks": [ "https://example.com/shared-link-1", "https://example.com/shared-link-2" ] } } ``` -------------------------------- ### Obot Auth Provider Placeholder Credential Reference Source: https://github.com/obot-platform/tools/blob/main/docs/auth-providers.md Specifies how an Obot authentication provider must reference the placeholder credential located within the same repository. This ensures a consistent way to manage credential dependencies. ```shell Credential: ../placeholder-credential as ``` -------------------------------- ### Default Encryption Configuration Locations Source: https://github.com/obot-platform/tools/blob/main/credential-stores/README.md Default locations for the encryption configuration file on macOS and Linux. Similar to the SQLite file, the location can be influenced by the XDG_CONFIG_HOME environment variable. ```APIDOC Default Encryption Configuration Locations: macOS: - ~/Library/Application Support/gptscript/encryptionconfig.yaml - If XDG_CONFIG_HOME is set: $XDG_CONFIG_HOME/gptscript/encryptionconfig.yaml Linux: - $XDG_CONFIG_HOME/gptscript/encryptionconfig.yaml ```