Skip to main content

MCP server for Strayl log search with semantic and exact search capabilities

Project description

Strayl MCP Server

MCP server for semantic and exact log search powered by Strayl.

Features

  • Semantic Search: AI-powered search across your logs using vector embeddings
  • Exact Text Search: Traditional text matching with case-sensitive options
  • Time Filtering: Search logs by time periods (5m, 1h, today, yesterday, 7d, etc.)
  • Log Level Filtering: Filter by log levels (info, warn, error, debug)
  • Easy Integration: Works with Claude Desktop, Cline, and other MCP clients

Installation

Install via pipx (recommended):

pipx install strayl-mcp-server

Or via pip:

pip install strayl-mcp-server

Configuration

Get Your API Key

  1. Visit https://strayl.dev
  2. Generate an API key
  3. Copy your API key (starts with st_)

Claude Desktop Configuration

Add to your Claude Desktop config file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "strayl": {
      "command": "pipx",
      "args": ["run", "--no-cache", "strayl-mcp-server"],
      "env": {
        "STRAYL_API_KEY": "your_api_key_here"
      }
    }
  }
}

Cline/Other MCP Clients

Add to your MCP settings file:

{
  "mcpServers": {
    "strayl": {
      "command": "pipx",
      "args": ["run", "--no-cache", "strayl-mcp-server"],
      "env": {
        "STRAYL_API_KEY": "your_api_key_here"
      }
    }
  }
}

Available Tools

1. search_logs_semantic

Semantic (AI-powered) search across your logs.

Parameters:

  • query (required): Search query in natural language
  • time_period (optional): Time filter (e.g., "5m", "1h", "today", "7d")
  • match_threshold (optional): Similarity threshold (0.0-1.0, default 0.5)
  • match_count (optional): Max results (default 50)

Example:

Search for database connection errors in the last hour

2. search_logs_exact

Exact text matching search across your logs.

Parameters:

  • query (required): Exact text to search for
  • time_period (optional): Time filter
  • level (optional): Log level filter ("info", "warn", "error", "debug")
  • case_sensitive (optional): Case-sensitive search (default false)
  • limit (optional): Max results (default 50)

Example:

Search for exact text "timeout" in error logs from today

3. list_time_periods

List all supported time period formats.

Time Period Formats

Minutes

  • 5m, 5_minutes, 5_mins - Last 5 minutes
  • 10m, 15m, 30m - Last 10, 15, 30 minutes

Hours

  • 1h, 2h, 6h, 12h - Last 1, 2, 6, 12 hours
  • 24h, last_24_hours - Last 24 hours

Days

  • today - Today from 00:00 UTC
  • yesterday - Full yesterday
  • 7d, last_7_days - Last 7 days
  • 30d, last_30_days - Last 30 days

Usage Examples

With Claude Desktop

Simply ask Claude:

"Search my logs for authentication errors in the last hour"

"Find all database connection issues from today"

"Show me exact text 'null pointer' in error logs"

Development/Testing

Run the server directly:

export STRAYL_API_KEY="your_api_key_here"
strayl-mcp-server

Logging Your Application

To send logs to Strayl, use the Strayl Log API:

import httpx

api_key = "st_your_api_key"
api_url = "https://ougtygyvcgdnytkswier.supabase.co/functions/v1"

async def log_message(message: str, level: str = "info", context: dict = None):
    async with httpx.AsyncClient() as client:
        await client.post(
            f"{api_url}/log",
            json={
                "message": message,
                "level": level,
                "context": context or {}
            },
            headers={"Authorization": f"Bearer {api_key}"}
        )

# Usage
await log_message("User logged in", "info", {"user_id": "123"})
await log_message("Database connection failed", "error", {"db": "postgres"})

Troubleshooting

API Key Issues

If you get authentication errors:

  1. Verify your API key starts with st_
  2. Check the API key is correctly set in your MCP config
  3. Ensure there are no extra spaces or quotes around the key

Connection Issues

If the server fails to connect:

  1. Check your internet connection
  2. Verify the Strayl API is accessible
  3. Check for any firewall or proxy issues

No Results

If searches return no results:

  1. Verify you've sent logs to Strayl
  2. Check the time period filter isn't too restrictive
  3. For semantic search, wait a few seconds for embeddings to generate

Support

License

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

strayl_mcp_server-0.1.1.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

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

strayl_mcp_server-0.1.1-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file strayl_mcp_server-0.1.1.tar.gz.

File metadata

  • Download URL: strayl_mcp_server-0.1.1.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.4

File hashes

Hashes for strayl_mcp_server-0.1.1.tar.gz
Algorithm Hash digest
SHA256 446a67aa149c52177534d6ed5eb7710712bd48d266c4feee8815a3031b1522c2
MD5 15745a60ee5270adc957ddfdeb79d1f2
BLAKE2b-256 42ecf1314c62b3712b22898b67003d34153910fb0692a2f02bf7bcc26fcffe2e

See more details on using hashes here.

File details

Details for the file strayl_mcp_server-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for strayl_mcp_server-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2d4b55be056a753a6a72189c126b532337e1af89dcf4d0416eafadb24ffa1984
MD5 9e2632559f94176b7d82d4fc82007ce1
BLAKE2b-256 6c9eb02dd3e2ebed45e7dc6aa00842d8beda273e4b18b00ed9b31fc6757ece04

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