Skip to main content
Glama

worklab-tools — MCP Server for Personal Knowledge Management

A Model Context Protocol (MCP) server that provides AI-powered tools for knowledge management, including semantic search, audio transcription, image generation, and PPT creation.

Built for use with Claude Code and the Knowledge system.

Tools

Tool

Description

search_knowledge(query, type?, company?, person?)

Semantic search over knowledge base (ChromaDB + bge-m3)

index_knowledge()

Full rebuild of vector index from all markdown files

upsert_knowledge()

Incremental index update (MD5 diff, only re-index changed files)

generate_ppt(topic, context_text?, page_count?)

Generate PPT: plan outline → slide images → PDF output

generate_image(prompt, filename?)

Generate image from text description (Gemini)

transcribe_audio(file_path, model_size?)

Speech-to-text with speaker diarization (Whisper + pyannote)

register_voiceprint(name, file_path)

Register speaker voiceprint for future identification

Related MCP server: rag-mcp

Setup

# Clone
git clone https://github.com/Ryeliu/worklab-tools.git
cd worklab-tools

# Install dependencies (requires Python 3.12+, uv recommended)
uv sync

# Configure environment
cp .env.example .env
# Edit .env with your API keys

# Run
uv run mcp run server.py

Environment Variables

Create a .env file:

GEMINI_API_KEY=your_google_ai_studio_key
HF_TOKEN=your_huggingface_token
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
OPENROUTER_API_KEY=your_openrouter_key

Variable

Required For

Source

GEMINI_API_KEY

generate_image

Google AI Studio

HF_TOKEN

transcribe_audio, register_voiceprint

HuggingFace

OPENROUTER_API_KEY

generate_ppt

OpenRouter

Register with Claude Code

Add to your Claude Code MCP settings:

{
  "mcpServers": {
    "worklab-tools": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/worklab-tools", "mcp", "run", "server.py"],
      "env": {
        "GEMINI_API_KEY": "...",
        "HF_TOKEN": "...",
        "OPENROUTER_BASE_URL": "https://openrouter.ai/api/v1",
        "OPENROUTER_API_KEY": "..."
      }
    }
  }
}

Dependencies

  • Semantic Search: chromadb, sentence-transformers (BAAI/bge-m3, CPU)

  • Transcription: openai-whisper (large-v3), pyannote.audio (speaker diarization)

  • PPT Generation: openai SDK (OpenRouter → Gemini), Pillow

  • Image Generation: httpx (Gemini API direct)

License

MIT

Available Tools

7 tools
generate_imageA

Generate an image from a text description using Gemini (nano banana). Use this when the user needs illustrations, diagrams, icons, or any visual content. The image will be saved to the current working directory.

Args:
    prompt: Description of the image to generate
    filename: Output filename (default: output.png)

Inputs: prompt (required), filename. Returns: result

generate_pptA

Generate a complete PPT presentation from a topic and optional context. Plans an outline using Gemini, generates slide images, and outputs a PDF.

Use this when the user wants to create a PPT/presentation. The /ppt skill
calls this tool automatically with knowledge base context.

Args:
    topic: The presentation topic (e.g. "润信科技 介绍", "AI在金融领域的应用")
    context_text: Optional reference content to inform the slides (max 3000 chars used)
    page_count: Number of slides to generate (default 5)

Inputs: topic (required), page_count, context_text. Returns: result

index_knowledgeA

Rebuild the vector index from all markdown files in the knowledge base. Scans companies/, people.md, projects.md, meetings/ and indexes all content into ChromaDB with rich metadata for semantic search and filtering. Call this after adding or updating knowledge base files.

Inputs: no named parameters. Returns: result

register_voiceprintA

Register a person's voiceprint from an audio file. The audio should contain only one person speaking clearly for 20-30 seconds. The voiceprint will be saved and used to identify this person in future meeting transcriptions.

Args:
    name: The person's name (will be used as label in transcriptions)
    file_path: Absolute path to an audio file with the person's voice

Inputs: name (required), file_path (required). Returns: result

search_knowledgeA

Search the knowledge base using semantic similarity with optional filters.

Args:
    query: Natural language search query (e.g. "金融AI", "RPA项目进展")
    type: Filter by entity type: person/project/company/meeting (optional)
    company: Filter by company name (optional, partial match)
    person: Filter by person name (optional, partial match)
    top_k: Number of results to return (default 5)

Inputs: query (required), type, top_k, person, +1 more. Returns: result

transcribe_audioA

Transcribe an audio/video file to text using local Whisper. Automatically detects multiple speakers using pyannote and matches against registered voiceprints. Unknown speakers are labeled as "未知说话人1", "未知说话人2", etc.

Use this when the user provides an audio/video file and wants:
- Speech-to-text transcription
- Meeting minutes / meeting notes
- Interview transcription
- Any audio content converted to text

Args:
    file_path: Absolute path to the audio/video file
    model_size: Whisper model size (default: large-v3 for best Chinese support)

Inputs: file_path (required), model_size. Returns: result

upsert_knowledgeA

Incrementally update the vector index — only re-index changed files. Compares file MD5 hashes to detect additions, modifications, and deletions. Much faster than index_knowledge() when only a few files changed.

Inputs: no named parameters. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 7 tools

    Disambiguation4/5

    Most tools have clearly distinct purposes: knowledge indexing/search, image generation, PPT creation, audio transcription, and voiceprint registration. However, index_knowledge and upsert_knowledge both handle updating the vector index, and an agent might initially be unsure which to call; descriptions clarify the difference but some overlap exists.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case: index_knowledge, search_knowledge, generate_image, generate_ppt, transcribe_audio, register_voiceprint. This makes the set predictable and easy to navigate.

    Tool Count5/5

    Seven tools is well within the ideal range and each tool serves a distinct function across three logical clusters: knowledge management (3), content generation (2), and audio processing (2). The count feels appropriately scoped for a worklab assistant without being overwhelming.

    Completeness4/5

    The knowledge base tools cover the full indexing/search lifecycle, and image/PPT generation covers creation needs. However, voiceprint management is minimal—there is a register function but no way to list, update, or delete voiceprints, and audio transcription relies on pre-registered voices without a fallback for managing those. Overall, core workflows are covered with minor gaps.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that enables AI assistants to perform semantic searches over local document collections using multi-context organization and automatic OCR. It supports various file formats including PDF, DOCX, and images, ensuring all data processing remains local and private.
      8
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP knowledge server that enables saving and retrieving memory across sessions, with tools to ingest text, URLs, YouTube, and files, and perform semantic search.
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      A self-hosted MCP server that provides a personal semantic memory layer for AI tools. It enables storing, searching, and managing memories using hybrid vector and keyword search, allowing AI assistants to recall information by meaning.
      MIT