File Server MCP
An MCP server with 14 tools for managing UTF-8 text files within a configured workspace. No API key or external service is required.
Install a published release
Requires uv. The distribution is mcp-files-context; the command is mcp-files:
uvx --python 3.13 --from mcp-files-context==0.2.0 mcp-files --workspace ./workspace
Published versions are listed on PyPI. If the version is not available yet, use the GitHub command below. Publishing is managed through GitHub Actions.
Run from GitHub without cloning
Requires uv and Git. uv downloads the selected package and manages Python 3.13 and its dependencies:
uvx --python 3.13 --from "git+https://github.com/jayanth-mkv/agent-mcp-registry.git@main#subdirectory=mcp-files" mcp-files --workspace ./workspace
Only this MCP and its runtime dependencies are installed. uv fetches the repository internally; you do not need a local checkout. To pin the source, replace main with a release tag or full commit SHA.
Install from source
From this directory, with Python 3.13+ and uv:
uv sync --locked --no-dev
uv run --locked --no-dev mcp-files --workspace ./workspace
The default transport is stdio. Configure your MCP client using the repository example.
For Streamable HTTP:
uv run --locked --no-dev mcp-files --transport http --host 127.0.0.1 --port 8000 --workspace ./workspace
Endpoint: http://127.0.0.1:8000/mcp. Legacy SSE is available with --transport sse at /sse.
Tools
| Tool | Arguments | Behavior |
|---|---|---|
create_file |
path, content="" |
Create a new file; fail if it exists. |
read_file |
path |
Read UTF-8 text. |
write_file |
path, content |
Create or overwrite a text file. |
append_file |
path, content |
Append text; create the file if missing. |
delete_path |
path |
Delete a file or recursively delete a directory. |
rename_path |
src, dst |
Rename a file or directory. |
copy_path |
src, dst |
Copy a file or directory; merge existing directories. |
move_path |
src, dst |
Move a file or directory. |
list_files |
None | List workspace files recursively. |
list_dirs |
None | List workspace directories recursively. |
search_file |
path, term |
Return matching lines with line numbers. |
file_info |
path |
Return JSON metadata. |
workspace_stats |
None | Return JSON counts, sizes, and extensions. |
path_exists |
path |
Return file, dir, or none. |
Paths resolve inside the configured workspace. Parent directories are created when writing files. Relative workspace paths resolve from the process working directory; prefer an absolute workspace path in client configuration.
Configuration
| Setting | Environment variable | Default |
|---|---|---|
| Workspace | MCP_WORKSPACE_DIR |
./workspace |
| HTTP/SSE host | MCP_SERVER_HOST |
127.0.0.1 |
| HTTP/SSE port | MCP_SERVER_PORT |
8000 |
CLI flags override environment settings. --workspace is applied before the server starts. Startup diagnostics use stderr so stdout remains available for MCP messages.
Boundaries
Use a dedicated workspace: callers have read and write access, including recursive deletion. The workspace root itself cannot be deleted, renamed, or moved. Symbolic links and Windows junctions are unsupported and rejected, including links inside copied directory trees. These checks do not provide isolation against concurrent filesystem changes by other processes.
The server has no authentication or size quotas. Keep HTTP/SSE on loopback. Text tools read complete files into memory and are intended for small local text files.
Development
uv sync --locked
uv run --locked pytest -q
uv build
The CLI is now mcp-files; the former nested mcp-server workspace has been consolidated into this package. AI clients are in experimental/.
Version 0.2.0. Licensed under the MIT License.
Metadata
Release files for mcp-files-context 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mcp_files_context-0.2.0.tar.gz | 7.3 kB | With provenance | Details for mcp_files_context-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mcp_files_context-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for mcp_files_context-0.2.0-py3-none-any.whl |
Total release size: 16.8 kB
Release files / mcp_files_context-0.2.0.tar.gz
| Download URL | mcp_files_context-0.2.0.tar.gz |
|---|---|
| Size | 7.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
da138565280c0d190fcb16cadab020c6e85b0801d0bb325a89f3a68b8f99b4a8
|
|
BLAKE2b-256 checksum How to use checksums |
4e0c54ef6450c3cc093d368a94a73f8c88619ed06c671bdd8e4bdc9b510b3d6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / mcp_files_context-0.2.0-py3-none-any.whl
| Download URL | mcp_files_context-0.2.0-py3-none-any.whl |
|---|---|
| Size | 9.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e2d7aebc49f05483f9a45241d73820aa21a4ac1204156f0e96d12a31ef68804e
|
|
BLAKE2b-256 checksum How to use checksums |
2215dd1054118bfa1b4733be325d5f44d80fb7c71fcebe21810f253d7bdddd47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logSecurity for mcp-files-context 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for mcp_files_context-0.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.