Skip to main content
Glama

VectorSmith

あなたのベクターデータベースを、エージェントが実際に使えるツールへ鍛え上げます。

tools.yaml を書きましょう。VectorSmith はそれを、型付きでテナント保護されたツールにコンパイルします。あとは Python で import するか、MCP 経由で serve するだけです。

License Python 3.11+ TDS MCP Docs

これは何か · 仕組み · YAML を書く · Python · Claude / Codex / Cursor · 試す · ドキュメント


なぜこれが存在するのか

あなたの 請求書、チケット、カタログを扱うエージェントは、いつも次の2つの悪い選択肢のどちらかに陥りがちです。

典型的なアプローチ

何がうまくいかないのか

ベンダー製 MCP(Qdrant / Pinecone / …)

クラスタ管理ツール。Upsert、delete、create-collection。モデルが迷走してしまう。

LangChain / OpenAI SDK に JSON スキーマを手で結び付け

フィルタ、リミット、テナント分離を Python で再実装することになる。どのエージェントもそれをコピーする。

「システムプロンプトに embed と search() を書くだけ」

型付き引数なし。enum なし。隠れた tenant = acme もない。

VectorSmith は第3の選択肢です。データストアはあなたのもののまま。ツールは YAML のコントラクトです。 コンパイラはそのコントラクトを MCP スキーマまたはインプロセスツールに変換します。エージェントが URL も API キーもテナントフィルタも見ることはありません。

  you write                         VectorSmith                    the agent sees
─────────────                   ─────────────────                ────────────────
 tools.yaml          ──▶   interpolate → validate → compile  ──▶  search_invoices
 tenant: acme                    Engine stays internal            query, client, status
 ${QDRANT_URL}                                                    (no tenant, no URL)

Related MCP server: openapi-mcp-server

仕組み

flowchart LR
  subgraph author["You"]
    Y["tools.yaml"]
    E[".env / ${VAR}"]
  end
  subgraph vs["VectorSmith"]
    L["load + secret lint"]
    V["validate VBxxxx"]
    C["compile schemas + plan"]
  end
  subgraph out["Consume once"]
    P["load_tools() / connect()"]
    M["vectorsmith serve"]
  end
  subgraph hosts["Hosts"]
    A["LangChain · LangGraph · Agents SDK · Anthropic"]
    H["Claude · Codex · Cursor · claude.ai"]
  end
  Y --> L
  E --> L
  L --> V --> C
  C --> P --> A
  C --> M --> H

1つのファイル、2つの入口。コンパイル済みツールはどちらも同じものです。

Python アプリ

チャット / IDE ホスト

インストール

pip install "vectorsmith[qdrant,langchain]"

pip install "vectorsmith[qdrant]" して vectorsmithPATH に通す

呼び出し

from vectorsmith import load_tools

vectorsmith serve tools.yaml --name invoices

プロセス

インプロセス。サブプロセスなし。

ホストが CLI を spawn(起動) する(MCP stdio または HTTP)

混在

自分の @tool に MCP クライアント経由で Slack/GitHub を加える

別の mcpServers キーをその横に置く

executor を import する必要は ありませんinputSchema を LLM SDK にコピーする必要も ありません


プロンプトではなく、ツールを書く

ツールとは、名前、説明(モデルが それを選ぶ ための)、コレクション、任意のテキスト検索、モデルが渡せるパラメータ、そしてモデルに 絶対に見せてはならない フィルタで構成されます:

tds_version: "1"

connections:
  invoices:
    backend: qdrant
    url: ${QDRANT_URL}              # secrets only here, only as ${VAR}
    api_key: ${QDRANT_API_KEY:-}

tools:
  - name: search_invoices
    kind: search
    description: >
      Search invoices by free text and filter by client, status, or amount.
      Use when the user asks about invoices, billing, or payments.
    target: { connection: invoices, collection: invoices }
    query: { param: query, required: false }
    static_filters:
      - { path: tenant, op: eq, value: acme }    # hidden from the model
    parameters:
      - { name: client, path: client_name, dtype: keyword, op: eq }
      - { name: status, path: status, dtype: keyword, op: in,
          enum: [draft, sent, paid, overdue] }
      - { name: min_amount, path: amount, dtype: float, op: gte }
    output:
      fields: [invoice_id, client_name, status, amount]
      limit_default: 10
      limit_max: 50

vectorsmith init ./demo はスターターの tools.yaml を作成します。フィールドの全一覧(kinds、operators、pipelines、built-ins、すべてのバックエンド)は docs/tools-yaml-reference.md にあります。

モデルが見えるもの

{
  "name": "search_invoices",
  "description": "Search invoices by free text and filter by client, status, or amount. …",
  "inputSchema": {
    "type": "object",
    "properties": {
      "query": { "type": "string" },
      "client": { "type": "string" },
      "status": {
        "type": "array",
        "items": { "type": "string", "enum": ["draft", "sent", "paid", "overdue"] }
      },
      "min_amount": { "type": "number" },
      "limit": { "type": "integer", "minimum": 1, "maximum": 50, "default": 10 }
    }
  }
}

tenant: acme はそのスキーマには 含まれません。エンジンがすべての呼び出しでこの条件を AND したうえで付け加えます。認証情報は決して connections の外に出ません。

宣言できる kind

kind

用途

典型的なツール

search

意味検索 + フィルタ

search_invoices

lookup

完全一致の id、limit 1

get_invoice

count

「期限切れは何件?」

count_invoices

scroll

フィルタ / ページング、ANN なし

一覧系ツール

pipeline

取得 → post_filter / group_by / sort / project

クライアント別トップ N

組み込みツール(search_<connection>get_<connection>_by_id など)は、接続ごとに オプトイン です。同じ名前でユーザーツールをすでに定義している場合は、オフにしてください。


エージェントで使う(Python)

pip install "vectorsmith[qdrant,langchain]"
from vectorsmith import load_tools
from langchain.agents import create_agent

tools = load_tools("tools.invoices.yaml", "tools.tickets.yaml")
agent = create_agent("openai:gpt-4.1", tools)
# … await tools.aclose()

同じ YAML で、他のスタックでも:

from vectorsmith.langgraph import load_tools      # create_react_agent / ToolNode
from vectorsmith.openai_agents import load_tools  # Agent + Runner
from vectorsmith.anthropic import load_tools      # messages.create(tools=vs.tools)
from vectorsmith import connect                   # await vs.call("search_invoices", {…})

追加のオプション

import

vectorsmith[langchain]

from vectorsmith import load_tools

vectorsmith[langgraph]

同じツール。LangGraph グラフ用

vectorsmith[openai-agents]

from vectorsmith.openai_agents import load_tools

vectorsmith[anthropic]

from vectorsmith.anthropic import load_tools

実装済みアプリ: examples/langchain_agent · langgraph_agent · openai_agents · anthropic_agent


Claude、Codex、Cursor で使う

これらのプロダクトは vectorsmith を import できません。プロセスを起動します。同じ YAMLserve を向けてください。

{
  "mcpServers": {
    "invoices": {
      "command": "vectorsmith",
      "args": ["serve", "tools.invoices.yaml", "--name", "invoices"]
    }
  }
}

Codex は JSON ではなく TOML(~/.codex/config.toml)です。Claude Code は .mcp.json を使います。Desktop のファイルは 読みません

ホスト

設定

ガイド

Claude Desktop

claude_desktop_config.json

docs/integrations/claude-desktop.md

Claude Code

.mcp.json / claude mcp add

docs/integrations/claude-code.md

OpenAI Codex

~/.codex/config.toml

docs/integrations/openai-codex.md

Cursor

.cursor/mcp.json

docs/integrations/cursor.md

claude.ai

serve --http --auth builtin

docs/quickstart-selfhost.md

コピー貼り付けできるスニペット: examples/mcp_hosts/。Slack、GitHub、ファイルシステムは 別の サーバーのままにできます — 共存


ストア

接続の backend は、同梱の6つのアダプターのいずれかです。完全な対応表(extras、ハイブリッド、ネストしたパス): Vector stores

qdrant · pgvector · chroma · pinecone · weaviate · milvus

pgvector は、lookup / count / scroll 用の テーブルモード(ベクトル列なし)でも動かせます。ハイブリッド検索は機能ごとに制御され(Qdrant / Weaviate / Milvus / Pinecone)、validate --live で確認できます。


試す

請求書の例は、tools.yaml と env ファイルで構成されています。.env.example をコピーして、validate / test / serve の前に QDRANT_URLあなたの クラスタに設定してください。

# clone, then:
uv sync

uv run vectorsmith validate examples/qdrant_invoices/tools.invoices.yaml \
  --env-file examples/qdrant_invoices/.env.example

uv run vectorsmith test examples/qdrant_invoices/tools.invoices.yaml search_invoices \
  --args '{"query":"Globex invoice","limit":3}' \
  --env-file examples/qdrant_invoices/.env.example

uv run vectorsmith serve examples/qdrant_invoices/tools.invoices.yaml --name invoices \
  --env-file examples/qdrant_invoices/.env.example

チケットは、2つ目のファイル / 2つ目の MCP 名として用意できます: tools.tickets.yaml--name tickets

実例のチュートリアル


CLI

コマンド

機能

init

スターターの tools.yaml + .env.example を作成する

validate

コンパイル + lint。--live はストアに ping する。--strict は警告をエラーにする

test

サーバーを起動せずにコンパイル済みツールを1つ呼び出す

serve

MCP stdio(Desktop / Cursor / Cursor。--watch は既定でオン)または --http HOST:PORT(watch なし)。既定の HTTP の --authbuiltin--public-url が必要)。localhost の HTTP では --auth none

introspect

コレクション / フィールドのメタデータを --out に出力(既定 schema.json)。--connection が必要。

drafts / approve

drafts list|reject NAMEapprove NAME [--file tools.yaml] はそのファイルに昇格させる。ドラフトは ./tools.drafts.yaml(プロセスの cwd)に置かれる

auth

組み込み HTTP OAuth の rotate-secret | revoke

validate は終了コード 0 / 1--strict の警告)/ 2(エラー)を返します。testintrospect はライブ接続の失敗で 3 を返します。serve --http --auth none は localhost 以外では 3 で終了します。


ドキュメント

kjgpta.github.io/vectorsmith はレンダリングされたマニュアル(Material for MkDocs)です。ソースは docs/ にあります。

したいこと

ここへ

5分でツールを動かす

はじめに

同梱のベクターストアを確認する

Vector stores

すべての tools.yaml フィールドを理解する

YAML reference

Claude、Codex、Cursor、LangChain などに接続する

Integrations

CLI フラグを調べる

CLI

Python からツールを呼び出す

Python API

Desktop の切断 / env / HTTP 認証を直す

FAQ

ホスト設定をコピーする

examples/mcp_hosts

エージェントアプリを見る

examples/


開発

uv sync
uv run ruff check .
uv run pytest -m "not conformance"
uv run lint-imports

ワークスペース: packages/corevectorsmith_core、未公開) · packages/cli(公開済み vectorsmith)。Core は CLI を import してはなりません。

貢献 · サポート · セキュリティ · 変更履歴 · 行動規範


Apache-2.0 · LICENSE · NOTICE

ツールを鍛え、ストアを守る。

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI-powered generation of production-ready CTP (ConveniencePro Tool Protocol) tools from natural language descriptions, including tool definitions, implementations, tests, and TypeScript validation.
    5
    12
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Converts any OpenAPI/Swagger API specification into MCP tools that AI assistants can use to interact with the API.
    24
    7
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Transforms OpenAPI definitions into MCP tools for seamless LLM-API integration.
    8
    39
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Point Gecko at an OpenAPI spec; get first-call-correct, auth-hidden agent tools.

  • Reliable async execution for agent tool calls: schema gating, retries, idempotency, audit trail.

  • 33 tools that make AI write, implement, and verify intent against explicit, testable constraints.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kjgpta/vectorsmith'

If you have feedback or need assistance with the MCP directory API, please join our Discord server