Sofos Code MCP server
2026년 10월 17일 커밋Claude 또는 OpenAI 모델을 로컬 파일, 도구 및 MCP server와 연결하여 소프트웨어 개발을 지원하는 터미널 기반 AI 코딩 어시스턴트입니다.
다른 이름 alexylon/sofos-code
- 스타
- 10
- Tools
- 17
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 10월 17일
- 라이선스
- Apache-2.0
Sofos Code MCP란?
Sofos Code은(는) MCP server입니다. Claude 또는 OpenAI 모델을 로컬 파일, 도구 및 MCP server와 연결하여 소프트웨어 개발을 지원하는 터미널 기반 AI 코딩 어시스턴트입니다. 17개 도구를 제공합니다. 예: list_directory, read_file, glob_files.
프로젝트 README에서 생성된 요약
Sofos Code MCP server 정보
Sofos Code는 Claude 또는 OpenAI 모델을 사용하는 개발자가 터미널 인터페이스를 통해 소프트웨어 프로젝트를 관리할 수 있도록 지원합니다. Rust 기반의 이 어시스턴트는 대규모 언어 모델을 로컬 환경에 연결하여 디렉터리 조사, ripgrep을 이용한 코드 검색, 그리고 정확한 치환(exact replacements) 또는 Morph Apply를 통한 파일 편집을 가능하게 합니다. macOS, Linux, Windows의 터미널에서 직접 작동하며, 가시적인 작업 계획을 제공하고 생성되는 마크다운 응답을 스트리밍 방식으로 보여줍니다.
보안은 워크플로의 핵심 요소로, read-only, sandboxed-ask, unsandboxed와 같은 명시적인 권한 모드를 제공합니다. Linux에서는 bash 실행 중 시스템을 보호하기 위해 운영체제 명령 제한을 위한 Bubblewrap을 활용할 수 있습니다. 사용자는 내장된 토큰 추적 기능을 통해 비용을 관리할 수 있으며, 세션 유지 기능을 통해 이전 대화를 재개할 수 있습니다. 또한 이미지 비전 기능을 지원하여, 어시스턴트가 로컬 파일, 원격 URL 또는 클립보드 내용을 분석함으로써 시각적 디버깅이나 문서 검토를 도울 수 있습니다.
활용 사례
- 1자동 코드 리팩토링어시스턴트에게 로컬 파일에 특정 코드 변경 사항이나 편집을 적용하도록 요청합니다.
- 2시각적 오류 분석UI 버그나 에러 메시지의 스크린샷을 제공하여 AI가 검토하도록 합니다.
- 3안전한 명령 실행특정 권한 프리셋을 사용하여 제어된 환경 내에서 빌드 또는 테스트 명령을 실행합니다.
- 4신속한 코드베이스 검색통합 검색 도구를 사용하여 대규모 프로젝트 전체에서 특정 로직이나 패턴을 찾아냅니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
Sofos Code MCP 도구 17
README에서 감지됨list_directoryread_fileglob_filessearch_codewrite_fileedit_filemorph_edit_filecreate_directorymove_filecopy_filedelete_filedelete_directory
| list_directory | — | |
| read_file | — | |
| glob_files | — | |
| search_code | — | |
| write_file | — | |
| edit_file | — | |
| morph_edit_file | — | |
| create_directory | — | |
| move_file | — | |
| copy_file | — | |
| delete_file | — | |
| delete_directory | — |
도구 17개 모두 보기도구 수 줄이기
execute_bashupdate_planview_imageweb_fetchweb_search
| execute_bash | — | |
| update_plan | — | |
| view_image | — | |
| web_fetch | — | |
| web_search | — |
구성
ANTHROPIC_API_KEYMORPH_API_KEYOPENAI_API_KEYRUST_LOG
| 이름 | 설명 | 유형 |
|---|---|---|
| ANTHROPIC_API_KEY | — | |
| MORPH_API_KEY | — | |
| OPENAI_API_KEY | — | |
| RUST_LOG | — |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능alexylon/sofos-code is public and reachablegithub.com/alexylon/sofos-code ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-10-17github.com/alexylon/sofos-code ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음17 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기Sofos Code
Sofos Code is a terminal-based AI coding assistant for software projects. It connects Claude or OpenAI models to local tools for reading code, editing files, running approved commands, searching the web, viewing images, and using external tools through the Model Context Protocol (MCP).
Sofos is written in Rust and runs in your terminal. Its access model is explicit: project files are available by default, while external paths and higher-risk actions require approval or configuration.
Sofos runs on macOS, Linux, and Windows. On macOS and Linux, the default shell mode uses an operating-system sandbox when the required platform support is available. On Windows, command confinement is disabled in this release. The bash executor still runs commands through the sh.exe provided by Git for Windows, which Sofos can find at the standard install path even when an integrated terminal does not expose Git on PATH.
Table of contents
- What Sofos does
- Key features
- Installation
- Quick start
- Usage
- CLI reference
- Models and reasoning effort
- Tools
- Security model
- Configuration
- Sessions and cost tracking
- Development
- Troubleshooting
- License
- Acknowledgments
- Links
What Sofos does
Sofos provides an AI assistant with controlled access to your project from inside the terminal. It can:
- inspect files and directories;
- search code with ripgrep;
- edit files with exact replacements or Morph Apply;
- create, move, copy, and delete files with permission checks;
- run approved build, test, and inspection commands;
- fetch documentation and use provider-native web search;
- open local image files or remote image URLs;
- accept image pastes from the clipboard;
- keep a visible task plan during multi-step work;
- save and resume conversations;
- connect to external tools through MCP servers.
The assistant acts through visible tool calls. Dangerous commands are blocked, deletion prompts for confirmation, and access outside the workspace is controlled by separate permission scopes.
Key features
- Terminal interface — Inline viewport at the bottom of your terminal while normal scrollback remains available.
- Claude and OpenAI support — Shared provider layer with provider-specific streaming, reasoning, web search, and cache handling.
- Streaming Markdown — Responses render as they arrive, including code blocks, headings, lists, tables, blockquotes, and links.
- Iterative tool use — The model can use tools across multiple steps, with a hard limit to prevent endless loops.
- Safe file editing — Exact edits, chunked writes, visual diffs, atomic writes, and optional Morph Apply.
- Explicit permissions — Separate Read, Write, and Bash grants for paths outside the workspace.
- Bash safety checks — Command tiers and structural checks for parent traversal, hidden subcommands, ANSI-C quoting, unconfined redirection, and dangerous Git operations.
- Access presets — Five permission modes:
read-only,sandboxed-ask,sandboxed-retry,sandboxed-strict, andunsandboxed. - Image vision — Local image files, remote image URLs, and pasted clipboard images.
- MCP integration — Tools from stdio or streamable HTTP MCP servers.
- Session persistence — Saved conversations with compatible model, permission preset, and cost counters restored.
- Cost visibility — Token totals, cache usage, and cost estimates priced per response at the rates of the model that answered it.
- Context compaction — Local and provider-supported compaction for older conversation context.
Installation
Requirements
Set at least one provider API key:
ANTHROPIC_API_KEYfor Claude models; orOPENAI_API_KEYfor OpenAI models.
Optional tools and keys:
ripgrep, recommended for fast code search throughsearch_code;MORPH_API_KEY, required for themorph_edit_filetool.
On Linux, the sandboxed-* presets need Bubblewrap (bwrap) for operating-system command confinement. Without it, Sofos starts unsandboxed and the sandboxed presets are disabled. Install it with your distribution's package manager:
# Debian / Ubuntu
sudo apt update
sudo apt install bubblewrap
# Fedora / RHEL
sudo dnf install bubblewrap
# Arch
sudo pacman -S bubblewrap
Bubblewrap also relies on kernel support for user namespaces, which is enabled by default on most modern distributions.
Prebuilt binary
Download the latest binary from GitHub Releases.
# macOS / Linux
tar xzf sofos-*.tar.gz
sudo mv sofos /usr/local/bin/
# Windows
# Extract the .zip archive and add the extracted folder to PATH.
On macOS, Gatekeeper may block the first run. Open System Settings → Privacy & Security, then choose Allow Anyway for the Sofos binary.
Install with Cargo
cargo install sofos
Install from source
git clone https://github.com/alexylon/sofos-code.git
cd sofos-code
cargo install --path .
Keep .sofos/ out of version control. It stores sessions, local permissions, and personal settings. AGENTS.md is project-level context and is intended to be version controlled.
Quick start
Set a provider key:
export ANTHROPIC_API_KEY='your-anthropic-key'
# or
export OPENAI_API_KEY='your-openai-key'
Optionally enable Morph Apply edits:
export MORPH_API_KEY='your-morph-key'
Start the interactive assistant:
sofos
Use a different model:
sofos --model gpt-sol
sofos --model claude-opus -e high
sofos --model gpt # OpenAI's default model
Run one prompt and exit:
sofos -p "Review the error handling in src/error.rs"
Start with inspection tools only:
sofos --readonly
Resume a saved session:
sofos --resume
Usage
Interactive commands
| Command | Description |
|---|---|
/resume |
Open the session picker and resume a saved conversation. |
/clear |
Clear the current conversation history and start a new session id. |
/compact |
Compact older context to reduce token usage. |
/effort |
Open the reasoning-effort picker. The picker lists only the levels supported by the active model. Use Up / Down to select, Enter to switch, and Esc to cancel. |
/effort low|medium|high|xhigh|max |
Switch directly to a reasoning level. Unsupported levels print a clear error. |
/mode |
Open the reasoning-mode picker. standard and pro; pro is disabled on the Anthropic models. Use Up / Down to select, Enter to switch, and Esc to cancel. |
/mode standard|pro |
Switch reasoning mode. pro is accepted only on the OpenAI models; other models print a clear error. |
/model |
Open the model picker. Use Up / Down to select, Enter to switch, and Esc to cancel. Models this session cannot switch to are greyed out and skipped: the other provider's models, because the API client is fixed at startup, and any model that rejects the active reasoning effort, reasoning mode, or output-token ceiling. Type /model <name> to see the reason a particular model is unavailable. |
/model <name> |
Switch directly to a model on the active provider. To switch provider, restart Sofos with --model <name>. |
/permissions |
Open the permission preset picker. The presets are read-only, sandboxed-ask, sandboxed-retry, sandboxed-strict, and unsandboxed. Use Up / Down to select, Enter to switch, and Esc to cancel. Where sandboxing is unavailable, such as Windows, the sandboxed-* presets are shown but disabled. |
/permissions <preset> |
Switch directly to a permission preset. |
/exit, /quit, /q, Ctrl+D |
Save the session and exit with a cost summary. |
Esc or Ctrl+C while busy |
Interrupt the current AI turn. |
Input behaviour
- Enter submits the current message.
- Shift+Enter inserts a newline when the terminal supports it.
- Alt+Enter and Ctrl+Enter are newline fallbacks.
- Ctrl+U deletes from the cursor to the start of the line.
- Ctrl+W deletes the previous word.
- Ctrl+K deletes from the cursor to the end of the line.
- These editing shortcuts match common readline behaviour used by bash, zsh, and fish.
- Alt+Up and Alt+Down move through previously submitted prompts. Sofos preserves the current draft and restores it when you move past the newest entry.
- Typing
/at the start of the input opens command suggestions. Use Up / Down to select, Enter to run the selected command, Tab to insert it into the input, and Esc or Ctrl+C to dismiss the list. - You can keep typing while the model is working. New messages are queued and processed in order.
- If the model is inside a tool loop, a queued message is delivered at the next tool-result boundary. This lets you steer the current turn without interrupting it.
- The status line shows the model, permission mode, reasoning setting, running token totals, and cache token counters when available.
One-shot prompts
One-shot mode sends a prompt, runs the assistant turn, saves the session, prints a summary, and exits.
sofos -p "Find the likely cause of the failing tests"
sofos -p "Create a high-level summary of this crate" --readonly
Redirecting the output to a file or another program produces plain text: colour and other terminal escape sequences are written only when the output is going to a terminal.
Image vision
Ask about an image by mentioning the file path or URL in your message. Sofos will call view_image to open it.
What is wrong in ./screenshots/error.png?
Describe ./docs/architecture-diagram.webp.
Review https://example.com/chart.png
What do you see in the images in ./assets/?
For a folder, Sofos lists the directory first, then opens each image one by one.
Clipboard paste:
Ctrl+V # Inserts a numbered marker such as ①.
Supported formats are JPEG, PNG, GIF, and WebP. Local images are limited to 20 MB. Images larger than 2048 pixels on the long side are scaled down proportionally before being sent to the model, so large screenshots do not inflate token usage unnecessarily. Images outside the workspace require Read permission the first time, like any other external file.
CLI reference
-p, --prompt <TEXT> Run one prompt and exit.
--readonly Start in read-only mode with inspection tools only.
--no-sandbox Start unsandboxed: run shell commands without operating-system confinement.
-r, --resume Resume a previous session.
--check-connection Check provider connectivity and exit.
--api-key <KEY> Anthropic API key. Overrides ANTHROPIC_API_KEY.
--openai-api-key <KEY> OpenAI API key. Overrides OPENAI_API_KEY.
--morph-api-key <KEY> Morph API key. Overrides MORPH_API_KEY.
--model <MODEL> Model to use. Default: claude-opus.
--morph-model <MODEL> Morph model to use. Default: morph-v3-fast.
--max-tokens <N> Maximum output tokens per response. Default: 64000.
-e, --reasoning-effort <LV> low, medium, high, xhigh, or max. Default: medium.
--reasoning-mode <MODE> standard or pro (OpenAI only). Default: standard.
--max-tokens must be at least 16 and must not exceed the chosen model's own output limit — 128000 tokens on every supported model. The limit is checked at startup and when switching model with /model. The hidden, deprecated --thinking-budget flag still parses for backwards compatibility, but it has no effect and is intentionally omitted from the CLI help.
Models and reasoning effort
Sofos supports these models, shown in /model picker order. You choose a model by its short name; Sofos sends the current version to the provider.
| Name | Current version | Provider |
|---|---|---|
claude-fable |
claude-fable-5-1 |
Anthropic |
claude-opus (default) |
claude-opus-5-5 |
Anthropic |
claude-sonnet |
claude-sonnet-5-5 |
Anthropic |
claude-haiku |
claude-haiku-5-5 |
Anthropic |
gpt-astra |
gpt-6-astra |
OpenAI |
gpt-sol |
gpt-6.1-sol |
OpenAI |
gpt-terra |
gpt-5.6-terra |
OpenAI |
gpt-luna |
gpt-6-luna |
OpenAI |
--model and /model accept only the short names above, plus claude (picks claude-opus) and gpt (picks gpt-sol). A versioned name or any other value is refused, and Sofos prints the supported list.
Sofos exposes five reasoning levels:
low, medium, high, xhigh, max
The active model determines which levels are valid. Sofos validates the level at startup and when /effort is used, so unsupported combinations fail before a provider request is sent.
Examples:
sofos -e medium # Default balance.
sofos -e high # More reasoning for hard tasks.
sofos -e max --model claude-opus # Highest Anthropic level.
sofos -e max --model gpt-sol # Highest OpenAI level.
Every supported model currently accepts all five levels.
Provider mapping:
- OpenAI sends
reasoning.effortdirectly. On the OpenAI models,--reasoning-mode pro(or/mode pro) additionally sendsreasoning.mode: "pro"— the model does extra work before answering, trading latency and tokens for quality.standardis the default and omits the field. Mode is independent of effort. - Claude models all use adaptive thinking. The provider chooses the token budget from the effort level.
Claude Fable 5.1, Claude Opus 5.5, and Claude Sonnet 5.5 run safety classifiers that can decline a request. On those models Sofos asks Anthropic to answer a declined request on a substitute model rather than returning the refusal, and prints a bright notice naming the model that answered. If the substitute declines too, the turn ends with the reason shown.
On the Anthropic models, Sofos asks for a readable summary of the model's reasoning and prints it under a dimmed Thinking: heading while the answer is being prepared. Asking for the summary does not change what a conversation costs: these models carry their reasoning between turns either way, and Anthropic bills it the same whether the summary is returned or withheld.
Tools
Native tools
| Tool | Purpose |
|---|---|
list_directory |
List one directory. Use glob_files for recursive discovery. |
read_file |
Read a file. External paths require Read permission. |
glob_files |
Find files recursively with glob patterns. Build and vendor directories are skipped by default. |
search_code |
Search code with ripgrep when rg is installed. |
write_file |
Create, overwrite, or append to a file. External paths require Write permission. |
edit_file |
Replace exact text in an existing file. Non-global edits require one unique match. Use replace_all only for intentional global replacement. External paths require Read and Write permission. |
morph_edit_file |
Apply fast Morph edits when MORPH_API_KEY is configured. External paths require Read and Write permission. |
create_directory |
Create directories. External paths require Write permission. |
move_file |
Move or rename files or directories. External paths require Write permission. |
copy_file |
Copy files. External sources require Read permission, and external destinations require Write permission. |
delete_file |
Delete a file after confirmation. External paths require Write permission. |
delete_directory |
Delete a directory after confirmation. External paths require Write permission. |
execute_bash |
Run approved shell commands through the bash permission system. |
update_plan |
Show the current task plan with pending, in_progress, and completed statuses. |
view_image |
Attach a local image file or an http(s):// URL to the conversation so the model can see it. |
web_fetch |
Fetch a URL and return readable text. |
web_search |
Use provider-native web search. |
Clipboard pastes are not routed through a tool. Pressing Ctrl+V in the prompt attaches the image directly to the message.
Read-only mode tools
Read-only mode is enabled with --readonly or the read-only preset in /permissions. It limits the native tool set to:
list_directory;read_file;glob_files;search_codewhen ripgrep is installed;update_plan;view_image;web_fetch;web_search.
MCP tools are filtered out in read-only mode by default. To make a server's tools available in read-only mode, add one of these values to that server entry in ~/.sofos/config.toml or .sofos/config.local.toml:
readonly = "read_only"when the server is known to expose only read operations;readonly = "allow"when you explicitly want to allow the server even if it may mutate data.
When read-only mode is enabled, the startup banner lists which MCP servers were filtered out and which were opted in.
MCP tools
Configured MCP servers can add tools dynamically. Sofos prefixes each MCP tool with the server name and a triple underscore separator so different (server, tool) pairs cannot collide:
filesystem___read_file
github___create_issue
Server names and tool names that contain the reserved separator are rejected at startup with a warning. If two servers expose the same tool name, the second registration is skipped and the first tool keeps its identifier. Tool listings are cached at startup for the session.
Security model
Sofos is built around explicit access boundaries. The assistant can work with a project without receiving unrestricted access to the host system.
Workspace and external paths
- Files inside the current workspace are available by default unless blocked by a deny rule.
- External paths use three independent scopes:
Read(path)for reading files and listing directories;Write(path)for writing, editing, creating, moving, copying, and deleting;Bash(path)for bash commands that reference external paths.
- Read access does not imply Write or Bash access.
- Write access does not imply Read or Bash access.
- Tools that both read and write external files, such as
edit_fileandmorph_edit_file, require both Read and Write grants. - External access can be allowed for the current session or remembered in configuration.
A fourth scope, WebFetch(domain:example.com), controls the web_fetch tool. The first time the assistant fetches a URL from a host you have not allowed, Sofos shows the host and asks whether to allow it. You can allow it for the current session or remember it for future sessions. Allowing a host also covers its subdomains, so allowing example.com also allows docs.example.com. Redirects are followed only after the same check on the destination host. In non-interactive runs, a host that is not already allowed is refused.
A fifth scope, Mcp(servername), controls tools from MCP servers. MCP servers run outside the Sofos sandbox with open network access, so the first time the assistant calls a tool from a server you have not allowed, Sofos shows the server and tool and asks whether to allow it. You can allow it for the current session or remember it as Mcp(servername), which covers every tool from that server. A matching deny rule blocks the server outright. In non-interactive runs, a server that is not already allowed is refused.
Sofos Code MCP 질문
Sofos Code MCP는 어떤 도구를 제공하나요?
17개 도구를 제공합니다. 예: list_directory, read_file, glob_files, search_code, write_file.
Sofos Code는 어떤 모델을 지원하나요?
Claude 및 OpenAI 모델을 지원하며, 다양한 제공업체와 추론 성능(reasoning efforts)을 선택하여 사용할 수 있습니다.
Sofos Code에서 외부 도구를 어떻게 사용하나요?
stdio 또는 streamable HTTP를 사용하는 MCP server를 통해 외부 도구에 연결할 수 있습니다.
지원되는 운영체제는 무엇인가요?
macOS, Linux, Windows에서 실행됩니다.