Skip to content

feat: add samba MCP - #32

Merged
mudler merged 1 commit into
masterfrom
feat/samba-mcp
Aug 24, 2026
Merged

feat: add samba MCP#32
mudler merged 1 commit into
masterfrom
feat/samba-mcp

Conversation

@mudler

@mudler mudler commented Aug 24, 2026

Copy link
Copy Markdown
Owner

The server speaks SMB2/SMB3 to a share over the network instead of reading a mounted path. A cifs mount inside a container needs either a privileged container or a host bind-mount, so dialling the share directly keeps the image self-contained.

It exposes six tools: list, search, read, write, move and delete. Every path is relative to the share root and passes through one cleanPath choke point, so no request can address anything outside the share. Search matches names only and never reads file contents, which keeps it cheap on a share full of large files. Reads refuse binary files and anything above SMB_READ_MAX_BYTES.

Two switches restrict what the server exposes. SMB_READ_ONLY drops write, move and delete. SMB_DISABLE_DELETE drops delete, and also makes write and move refuse to overwrite an existing path, because either would destroy the previous content.

The tool handlers run against a temporary directory in the specs. Four integration specs drive a real SMB server and are skipped unless SMB_TEST_ADDRESS names one; samba/README-test.md starts a disposable container for them.

Claude-Session: https://claude.ai/code/session_01TCUqUeXa7TJWrifZYPzXyh

The server speaks SMB2/SMB3 to a share over the network instead of
reading a mounted path. A cifs mount inside a container needs either a
privileged container or a host bind-mount, so dialling the share
directly keeps the image self-contained.

It exposes six tools: list, search, read, write, move and delete. Every
path is relative to the share root and passes through one cleanPath
choke point, so no request can address anything outside the share.
Search matches names only and never reads file contents, which keeps it
cheap on a share full of large files. Reads refuse binary files and
anything above SMB_READ_MAX_BYTES.

Two switches restrict what the server exposes. SMB_READ_ONLY drops
write, move and delete. SMB_DISABLE_DELETE drops delete, and also makes
write and move refuse to overwrite an existing path, because either
would destroy the previous content.

The tool handlers run against a temporary directory in the specs. Four
integration specs drive a real SMB server and are skipped unless
SMB_TEST_ADDRESS names one; samba/README-test.md starts a disposable
container for them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TCUqUeXa7TJWrifZYPzXyh
@mudler
mudler merged commit bfcac92 into master Aug 24, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant