openlocal
openlocal
열린 도구. 로컬 두뇌. 제로 클라우드.
작은 로컬 모델이 실제로 사용할 수 있는 도구 벨트 — 그리고 이를 증명하는 증거.
pip install openlocal
openlocal quickstart그게 전부입니다. quickstart는 이미 실행 중인 모델 서버(ollama, LM Studio, llama.cpp, vLLM)를 찾아서 설정 파일을 작성하고, 모델이 실제로 구동할 수 있는 도구 호출 프로토콜을 측정한 후, 실제 작업을 실행하여 작동하는 모습을 보여줍니다:
$ openlocal quickstart
openlocal quickstart - looking for a model server...
found ollama at http://127.0.0.1:11434/v1 with 6 model(s)
wrote ~/.openlocal/models.toml
default model: qwen3-4b (served as qwen3:4b)
measuring which tool protocol this model can drive...
-> native tool calling
demo: Read notes.md and tell me how many lines it has.
tool file_read
final
The file notes.md has 3 lines.
You are set up. Try:
openlocal run "list the files here and summarise what this project is"
openlocal eval # score this model on 15 deterministic tool tasks
openlocal mcp # serve these tools to Claude Code over MCPopenlocal을 사용하는 이유
🪶 제로 종속성 | 순수 표준 라이브러리. 몇 초 만에 설치되고, 라즈베리 파이에서 실행되며, 다른 사람의 릴리스로 인해 깨지지 않습니다. |
🔌 가지고 있는 것과 함께 작동 | OpenAI |
📊 측정되었고, 주장되지 않음 | 9개 공급업체의 10개 모델, 17개의 결정론적 작업에서 점수 측정. LLM 판정자 없음 — 모든 검사는 파일 diff 또는 정규식입니다. |
🧰 하나의 레지스트리, 두 가지 표면 | 동일한 8개 도구가 MCP 서버(Claude Code, 모든 MCP 클라이언트)와 로컬 모델 에이전트 루프를 지원합니다. |
🩹 실제 실패에 맞춰 조정됨 | 여기 있는 모든 인체공학적 규칙은 모델이 고장난 대가로 얻어졌습니다. 교훈 표는 다른 곳에서는 얻을 수 없는 부분입니다. |
🧩 TOML 편집으로 공급업체 추가 | 새로운 모델 제품군? |
Related MCP server: Hermes MCP Server
리더보드
동일한 작업, 동일한 도구, 한 번에 하나의 모델, 각각 두 번 실행. tools는 각 모델이 측정된 구동 프로토콜입니다 — 문서에 명시된 것이 아닙니다.
model | vendor | tools | passed | pass rate | bad json | tok/s |
| Alibaba | native | 17/17 | 100% | 0 | 40.4 |
| z.ai | native | 17/17 | 100% | 0 | 39.9 |
| Alibaba | native | 17/17 | 100% | 0 | 16.6 |
| NVIDIA | native | 16/17 | 94% | 0 | 54.9 |
| native | 16/17 | 94% | 0 | 50.3 | |
| OpenAI | native | 16/17 | 94% | 2¹ | 45.3 |
| IBM | native | 15/17 | 88% | 4 | 66.0 |
| Meta | native | 14/17 | 85% | 2 | 33.4 |
| Mistral | native | 14/17 | 82% | 0 | 11.1 |
| Microsoft | native | 13/17 | 79% | 0 | 61.5 |
¹ gpt-oss의 하모니 파서는 자체 도구 호출 중 일부를 거부합니다(llama.cpp가 500 응답). 클라이언트의 재시도 사다리가 모든 호출을 복구합니다 — RESULTS.md의 retries 열이 이를 정직하게 유지합니다.
재현: openlocal leaderboard --repeat 2
작은 모델이 도구에서 실패하는 이유
3B 모델은 멍청해서 실패하는 것이 아닙니다. 도구 출력이 프롬프트이기 때문이며, 대부분의 도구 출력은 사람을 위해 작성되었습니다. 아래 모든 내용은 측정되었습니다 — 점수가 올라가면 유지되고, 그렇지 않으면 되돌려졌습니다.
무엇이 깨졌는가 | 수정 방법 | 측정된 효과 |
"300번째 줄이 뭐야?" → 모델이 311번째 줄을 답변함 | 모든 줄에 번호 매기기: | 한 번의 턴으로 수정, 모델 전반에 걸쳐 |
모델이 500줄 파일을 한 번에 한 줄씩 탐색함 | 바닥글은 사실을 명시하고 명령을 내리지 않음("file continues" ≠ "call again with…") | phi: 12번의 낭비된 단계 → 2번 |
도구 호출 대신 산문 | 도구 없는 산문 = 최종 답변 (네이티브 전용) | phi: 51개의 잘못된 응답 → 5개 |
…하지만 "Sure, I'll use file_grep"은 계획입니다 | 의도 감지: 계획은 안내를 받고, 답변은 수락됨 | 의도에서 끝나는 실행 제거 |
| 산문 호출 구문을 파싱하여 실행함 | 낭비된 턴 제거 |
| JSON 복구: 중괄호 스캔, 꼬리 닫기, Python 리터럴, 조각 병합 | phi bad_json 5 → 0 |
모델이 소스를 읽기 전에 파일을 작성함 | 완료 시점의 오래된 쓰기 감지 | llama: 13 → 15 / 15 |
모델이 "44"를 추측하고 안내를 받아도 반복함 | 한 번의 턴 | granite이 작업 복구 |
4줄 CSV를 완벽하게 읽고 합계가 40이라고 말함 |
| granite: +2 작업 |
소스를 읽지 않고 출력 파일을 작성함 | 완료 시점의 허공 쓰기 감지 | qwen-4b over MCP 복구 |
|
| edit_code: 10/10 모델 통과 |
동일한 호출, 영원히 (A→B→A→B) | 반복 가드가 캐시된 결과를 재생함 | llama 페이지네이션 루프 제거 |
서버가 자체 도구 호출 구문에서 500 오류 발생 | 재시도 사다리: 요청대로 → 더 따뜻하게 → | gpt-oss: 11/15 → 14/15 |
되돌림: 시스템 프롬프트 규칙 하나 더 | — | granite 12/15 → 11/15. 더 적은 규칙이 승리합니다. |
MCP는 일급 시민이지, 래퍼가 아닙니다
openlocal eval --via-mcp는 실제 stdio MCP 서버를 통해 도구를 제공하여 전체 평가 제품군을 다시 실행합니다 — 스키마가 와이어를 건너고, 결과가 콘텐츠 블록으로, 각 작업마다 하위 프로세스가 있습니다. 점수는 인프로세스 숫자와 일치하며, 이것이 요점입니다: Claude Code가 경험하는 것이 측정된 것입니다.
Claude Code(또는 모든 MCP 클라이언트)에서 사용하기
pip install "openlocal[mcp]"
claude mcp add openlocal -- openlocal mcp로컬 모델이 사용하는 동일한 10개 도구, 이제 Claude Code에서 사용 가능합니다. finish는 뒤에 남습니다 — 이는 루프 제어이지, 기능이 아닙니다.
명령어
openlocal quickstart # find a server, configure, probe, demo
openlocal run "goal" # agent loop over your tools
openlocal run "goal" --url http://host:1234/v1 # no config at all
openlocal chat "hello" # one plain turn, no tools
openlocal tools # what the model can call
openlocal probe # measure native vs JSON tool calling
openlocal eval # 17 deterministic tasks, pass/fail
openlocal eval --via-mcp # same tasks, tools served over a REAL MCP server
openlocal leaderboard --repeat 2 # every configured model, one table
openlocal mcp # stdio MCP server
openlocal models / serve / stop / status / pull # local llama-server managementsmol은 동일한 CLI의 더 짧은 별칭입니다.
설정
작업 공간은 ~/.openlocal(또는 models.toml을 포함하는 모든 디렉토리, 또는 $OPENLOCAL_HOME)입니다. 여기에는 models.toml, state.json, 로그, 다운로드 및 평가 결과가 저장됩니다 — 설치된 패키지는 절대 저장되지 않습니다.
[engine.ollama]
type = "external"
base_url = "http://127.0.0.1:11434/v1"
[[model]]
id = "qwen"
engine = "ollama"
family = "qwen" # tells openlocal this vendor's tool-calling quirks
served_model = "qwen3:4b" # the exact name the backend knows
default = trueenv | default | 의미 |
|
| 작업 공간 디렉토리 |
| – | 모든 명령을 하나의 |
| cwd | 파일 및 셸 도구의 샌드박스 루트 |
| 8000 | 하나의 도구 결과에 대한 하드 상한 |
| dev commands | 쉼표 목록 또는 |
| 120 | MCP 도구 호출이 중단되기까지의 초 |
도구들
file_list(path=".") list files and folders
file_read(path, start_line=1, limit=200) read a file, one page at a time
file_write(path, content) write a file
file_edit(path, find, replace) replace text exactly, leave the rest alone
file_append(path, content) add to the end without touching what exists
file_grep(pattern, path=".") search files
web_search(query, limit=5) search the web (DuckDuckGo, or Tavily via key)
web_read(url, offset=0, max_chars=4000) read a page as text
shell_run(command, timeout=60) run one allowlisted command
calc(expression) exact arithmetic - models cannot count
finish(answer) agent loop only: end the task테스트로 강제된 하우스 규칙: 기본값이 있는 평면 인수, 모든 설명에 예제 호출, 한 줄 결과 헤더, 진실한 연속 힌트가 있는 하드 상한 출력, 그리고 다음 동작을 명명하는 오류 — no such file: x - call file_list(".") to see the files that exist.
아키텍처
tools/ one registry → mcp_server.py (Claude Code speaks MCP to it)
→ agent.py (a local model calls the same tools)
_http.py the entire network layer, on urllib (this is why deps = 0)
runner.py external servers, or llama-server processes it starts and owns
protocol.py native tool_calls → loose JSON → repair → symptom-specific nudge
families.toml per-vendor quirks as DATA - the file contributors edit
evals/ 17 deterministic tasks + a leaderboard across models기여하기
모델 제품군을 추가하는 데 Python이 필요하지 않습니다: families.toml을 편집하고, 모델을 models.toml에 추가한 후,
openlocal probe --model your-model
openlocal eval --model your-model그리고 결과 행을 PR에 붙여넣으세요. 자세한 내용은 CONTRIBUTING.md를 참조하세요.
AMD 하드웨어(ROCmFP4 + MTP 추측 디코딩)에서 로컬 GGUF 모델을 실행하는 방법은 docs/ENGINE.md에 문서화되어 있습니다 — 선택 사항이며, 위의 어떤 것에도 필요하지 않습니다.
라이선스
MIT © DevXV3
This server cannot be installed
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
- AlicenseNot gradedqualityNot gradedmaintenanceA lightweight and fast MCP server that enables AI agents to efficiently discover and execute tools through progressive disclosure, minimizing context consumption while supporting safe code execution in external environments.12
- FlicenseNot gradedqualityBmaintenanceA lightweight Node.js MCP server with zero dependencies offering 9 built-in tools for system info, web fetching, GitHub search, file operations, shell execution, and key-value memory, enabling AI agents to perform these tasks via the Model Context Protocol.
- AlicenseNot gradedqualityBmaintenanceA plug-and-play MCP server that adds zero-boilerplate tools like file search, reliability scoring, and prompt injection detection to any MCP-compatible agent.MIT
- FlicenseBqualityCmaintenanceA lightweight MCP server that enables AI assistants to interact with the local machine through terminal, filesystem, and Python execution tools.91
Related MCP Connectors
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
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/DevXV3/openlocal'
If you have feedback or need assistance with the MCP directory API, please join our Discord server