VectorSmith
VectorSmith
あなたのベクターデータベースを、エージェントが実際に使えるツールへ鍛え上げます。
tools.yaml を書きましょう。VectorSmith はそれを、型付きでテナント保護されたツールにコンパイルします。あとは Python で import するか、MCP 経由で serve するだけです。
これは何か · 仕組み · YAML を書く · Python · Claude / Codex / Cursor · 試す · ドキュメント
なぜこれが存在するのか
あなたの 請求書、チケット、カタログを扱うエージェントは、いつも次の2つの悪い選択肢のどちらかに陥りがちです。
典型的なアプローチ | 何がうまくいかないのか |
ベンダー製 MCP(Qdrant / Pinecone / …) | クラスタ管理ツール。Upsert、delete、create-collection。モデルが迷走してしまう。 |
LangChain / OpenAI SDK に JSON スキーマを手で結び付け | フィルタ、リミット、テナント分離を Python で再実装することになる。どのエージェントもそれをコピーする。 |
「システムプロンプトに embed と | 型付き引数なし。enum なし。隠れた |
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 --> H1つのファイル、2つの入口。コンパイル済みツールはどちらも同じものです。
Python アプリ | チャット / IDE ホスト | |
インストール |
|
|
呼び出し |
|
|
プロセス | インプロセス。サブプロセスなし。 | ホストが CLI を spawn(起動) する(MCP stdio または HTTP) |
混在 | 自分の | 別の |
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: 50vectorsmith 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
| 用途 | 典型的なツール |
| 意味検索 + フィルタ |
|
| 完全一致の id、limit 1 |
|
| 「期限切れは何件?」 |
|
| フィルタ / ページング、ANN なし | 一覧系ツール |
| 取得 → | クライアント別トップ 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 |
|
|
| 同じツール。LangGraph グラフ用 |
|
|
|
|
実装済みアプリ: examples/langchain_agent · langgraph_agent · openai_agents · anthropic_agent
Claude、Codex、Cursor で使う
これらのプロダクトは vectorsmith を import できません。プロセスを起動します。同じ YAML で serve を向けてください。
{
"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 Code |
| |
OpenAI Codex |
| |
Cursor |
| |
claude.ai |
|
コピー貼り付けできるスニペット: 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
コマンド | 機能 |
| スターターの |
| コンパイル + lint。 |
| サーバーを起動せずにコンパイル済みツールを1つ呼び出す |
| MCP stdio(Desktop / Cursor / Cursor。 |
| コレクション / フィールドのメタデータを |
|
|
| 組み込み HTTP OAuth の |
validate は終了コード 0 / 1(--strict の警告)/ 2(エラー)を返します。test と introspect はライブ接続の失敗で 3 を返します。serve --http --auth none は localhost 以外では 3 で終了します。
ドキュメント
kjgpta.github.io/vectorsmith はレンダリングされたマニュアル(Material for MkDocs)です。ソースは docs/ にあります。
したいこと | ここへ |
5分でツールを動かす | |
同梱のベクターストアを確認する | |
すべての | |
Claude、Codex、Cursor、LangChain などに接続する | |
CLI フラグを調べる | |
Python からツールを呼び出す | |
Desktop の切断 / env / HTTP 認証を直す | |
ホスト設定をコピーする | |
エージェントアプリを見る |
開発
uv sync
uv run ruff check .
uv run pytest -m "not conformance"
uv run lint-importsワークスペース: packages/core(vectorsmith_core、未公開) · packages/cli(公開済み vectorsmith)。Core は CLI を import してはなりません。
貢献 · サポート · セキュリティ · 変更履歴 · 行動規範
ツールを鍛え、ストアを守る。
Maintenance
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
- AlicenseAqualityDmaintenanceEnables AI-powered generation of production-ready CTP (ConveniencePro Tool Protocol) tools from natural language descriptions, including tool definitions, implementations, tests, and TypeScript validation.512MIT
- Alicense-qualityCmaintenanceConverts any OpenAPI/Swagger API specification into MCP tools that AI assistants can use to interact with the API.247MIT
- AlicenseBqualityCmaintenanceTransforms OpenAPI definitions into MCP tools for seamless LLM-API integration.8391MIT
- Flicense-qualityDmaintenanceAggregates tools from multiple MCP servers, generates TypeScript definitions, and executes custom TypeScript scripts to orchestrate cross-server tool calls.
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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