blob-storage
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@blob-storagestore this large dataset and return the UUID"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Blob Storage Service
A lightweight MCP data broker that stores large binary payloads under a UUID, enabling MCP clients and agents to exchange massive results without flooding the LLM context window.
Architecture
MCP Client / LLM Agent
│
│ tool call (large result)
▼
MCP Server ──store_blob──▶ Blob Storage Service ──▶ SQLite + local files
│ │
│ returns UUID │ retrieve_blob(uuid)
◀──────────────────────────────┘The agent only ever sees a UUID token — not the raw bytes.
Related MCP server: memex
Project Structure
src/blob_storage/
├── __init__.py # package metadata
├── config.py # pydantic-settings (env / .env)
├── models.py # SQLAlchemy ORM + Pydantic schemas
├── database.py # async engine, session factory, init_db()
├── storage.py # StorageBackend ABC + LocalFileBackend
├── service.py # BlobService (orchestration)
├── api.py # FastAPI REST API
└── mcp_server.py # MCP server (HTTP Streamable, /mcp)
tests/
├── conftest.py # shared fixtures
├── test_api.py # API integration tests
└── test_service.py # service unit testsQuickstart
Install dependencies
uv syncStart the REST API
uv run blob-api # defaults from config / .env
uv run blob-api --host 0.0.0.0 --port 9000 # override at runtimeInteractive docs available at http://<host>:<port>/docs.
Start the MCP server
uv run blob-mcp # defaults: 0.0.0.0:8001
uv run blob-mcp --host 0.0.0.0 --port 9001The MCP endpoint is served at http://<host>:<port>/mcp.
Configuration
Settings are read from environment variables or a .env file in the project root.
Variable | Default | Description |
|
| Directory for blob files |
|
| SQLAlchemy async DB URL |
|
| Default TTL — 90 days. Use |
|
| Max upload size (500 MB) |
|
| REST API bind address |
|
| REST API port |
|
| MCP server bind address |
|
| MCP server port |
|
| REST API URL used internally by the MCP server |
|
| How often the TTL cleanup job runs |
CLI flags (
--host,--port) take precedence over config/env for the respective server.
REST API Reference
Method | Path | Description |
|
| Liveness check |
|
| Store a blob |
|
| Download a blob |
|
| Metadata only (no payload) |
|
| Delete a blob |
Store a blob
Pass metadata as custom request headers:
Header | Default | Description |
|
| MIME type of the payload |
| config default | Override TTL; |
| — | Free-form source identifier |
| — | JSON object for arbitrary labels |
curl -X POST http://localhost:8000/blobs \
-H "Content-Type: application/octet-stream" \
-H "X-Mime-Type: application/json" \
-H "X-Origin: my-mcp-server" \
--data-binary '{"key": "value"}'Response:
{
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"expires_at": "2026-05-30T16:42:07Z",
"size_bytes": 16
}MCP Integration
The MCP server uses the Streamable HTTP transport. Configure your MCP host to connect over HTTP rather than spawning a subprocess:
{
"mcpServers": {
"blob-storage": {
"type": "http",
"url": "http://127.0.0.1:8001/mcp"
}
}
}Available tools
Tool | Input | Output |
|
|
|
|
|
|
|
| metadata JSON |
|
|
|
All binary data is base64-encoded in MCP tool calls (MCP messages are JSON/text).
Running Tests
uv run pytest tests/ -vExtending the Storage Backend
To use S3 or MinIO in production, implement the StorageBackend abstract class in storage.py:
from blob_storage.storage import StorageBackend
class S3Backend(StorageBackend):
async def store(self, blob_uuid: str, data: bytes) -> None: ...
async def retrieve(self, blob_uuid: str) -> bytes: ...
async def delete(self, blob_uuid: str) -> None: ...Then inject it into BlobService and the _backend singleton in api.py.
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.
Latest Blog Posts
- 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/shgsousa/blob-storage'
If you have feedback or need assistance with the MCP directory API, please join our Discord server