Skip to content

tool management service for performing vector tool calling at scale.

License

Notifications You must be signed in to change notification settings

promptmesh/semantictool

Repository files navigation

Semantic Tool

Semantic Tool is a microservice designed for dynamic discovery and invocation of external tools based on semantic similarity. It leverages vector embeddings to allow natural language queries to match and invoke relevant tools from a registry.

Features

  • 🧠 Semantic Tool Search – Find tools using vector-based matching of descriptions.
  • 🧰 Tool Invocation API – Call tools directly via REST interface.
  • 🛰️ Server Management – Register and list available MCP servers.

API Overview

Tool Endpoints

  • GET /api/v1/tools/list: List all available tools.
  • POST /api/v1/tools/call: Invoke a tool by name and arguments.
  • POST /api/v1/tools/semantic: Find relevant tools by semantic similarity to a text query.

Server Endpoints

  • GET /api/v1/servers/list: List all active server sessions.

Configuration

Set config via a URL using CONFIG_LOCATION (default: file:///config.yaml).

Example config.yaml:

mcp_servers:
  timeserver:
    command: uvx
    args: ["mcp-timeserver"]
  searxng:
    command: uvx
    args: ["mcp-searxng"]
  wolframalpha:
    command: uvx
    args: ["mcp-wolfram-alpha"]
    env:
      WOLFRAM_API_KEY: "your_api_key"

embedding:
  model_name: "all-MiniLM-L6-v2"
  dim: 384

Installation

Local (via uv)

uv run semantictool

Docker (recommended)

docker compose up

Dependencies

About

tool management service for performing vector tool calling at scale.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published