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에서 · 사용해 보기 · 문서


이게 왜 필요한가

여러분의 인보이스, 티켓, 카탈로그와 대화하는 에이전트는 대개 두 가지 나쁜 선택지 중 하나를 갖습니다:

일반적인 접근

문제점

벤더 MCP (Qdrant / Pinecone / …)

클러스터 관리 도구입니다. Upsert, delete, create-collection. 모델이 헤맬 수 있습니다.

JSON 스키마를 LangChain / OpenAI SDK에 수동으로 바인딩

필터, 제한, 테넌트 격리를 Python에서 다시 구현해야 합니다. 모든 에이전트가 이를 복사합니다.

"시스템 프롬프트에 그냥 임베드하고 search() 호출"

타입이 지정된 인자도, 열거형도, 숨겨진 tenant = acme도 없습니다.

VectorSmith는 세 번째 옵션입니다: 데이터 저장소는 당신의 것입니다. 도구는 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

하나의 파일, 두 개의 문. 동일한 컴파일된 도구.

Python 앱

채팅 / IDE 호스트

설치

pip install "vectorsmith[qdrant,langchain]"

pip install "vectorsmith[qdrant]" 그래서 vectorsmithPATH에 있도록

호출

from vectorsmith import load_tools

vectorsmith serve tools.yaml --name invoices

프로세스

프로세스 내 실행. 하위 프로세스 없음.

호스트가 CLI를 생성합니다 (MCP stdio 또는 HTTP)

혼합

MCP 클라이언트를 통한 @tool + Slack/GitHub

다른 mcpServers 키가 그 옆에 위치

실행기를 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는 시작용 파일을 작성합니다. 전체 필드 목록(종류, 연산자, 파이프라인, 내장 기능, 모든 백엔드)은 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

용도

일반적인 도구

search

의미 검색 + 필터

search_invoices

lookup

정확한 id, 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", {…})

추가 패키지

가져오기

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에서

이 제품들은 vectorsmithimport할 수 없습니다. 프로세스를 생성합니다. 동일한 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개 어댑터 중 하나입니다. 전체 매트릭스(추가 기능, 하이브리드, 중첩 경로): 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

티켓은 두 번째 파일 / 두 번째 MCP 이름입니다: tools.tickets.yaml--name tickets.

예제 둘러보기


CLI

명령어

설명

init

시작용 tools.yaml + .env.example 작성

validate

컴파일 + 린트. --live는 스토어에 핑을 보냅니다. --strict는 경고 시 실패합니다.

test

서빙 없이 컴파일된 도구 하나 호출

serve

MCP stdio (Desktop / Codex / Cursor; 기본적으로 --watch 켜짐) 또는 --http HOST:PORT (watch 없음). 기본 HTTP --authbuiltin입니다 (https --public-url 필요). Localhost HTTP: --auth none.

introspect

컬렉션 / 필드 메타데이터를 --out으로 (기본 schema.json). --connection이 필요합니다.

drafts / approve

drafts list|reject NAME. approve NAME [--file tools.yaml]는 해당 파일로 승격합니다. 초안은 ./tools.drafts.yaml(프로세스 cwd)에 저장됩니다.

auth

내장 HTTP OAuth용 rotate-secret | revoke

validate0 / 1(--strict 경고) / 2(오류)로 종료됩니다. testintrospect는 라이브 실패 시 3을 사용합니다. localhost가 아닌 곳에서 serve --http --auth none3으로 종료됩니다.


문서

kjgpta.github.io/vectorsmith 는 렌더링된 매뉴얼입니다 (Material for MkDocs). 소스는 docs/ 입니다.

원하는 것

이동

5분 안에 도구 작동시키기

시작하기

어떤 벡터 스토어가 포함되는지 보기

벡터 스토어

모든 tools.yaml 필드 이해하기

YAML 참조

Claude, Codex, Cursor, LangChain 등에 연결하기

통합

CLI 플래그 찾아보기

CLI

Python에서 도구 호출하기

Python API

Desktop 연결 끊김 / 환경 변수 / HTTP 인증 해결

FAQ

호스트 구성 복사

examples/mcp_hosts

에이전트 앱 보기

examples/


개발

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하면 안 됩니다.

기여하기 · 지원 · 보안 · 변경 로그 · 행동 강령


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