mcp-server-personal
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., "@mcp-server-personaladd lunch with Sarah next Tuesday at 1pm"
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.
mcp-server-personal
Personal-assistant MCP server for personal data. Part of the personal-assistant
project; built with FastMCP + Starlette + streamable-http, with per-domain
register_tools_* modules.
MCP endpoint: http://localhost:8002/mcp
Tools
Tool | Backend | Config needed |
| local | no |
| Gmail IMAP + app password | IMAP creds |
| local SQLite | no |
Todos and long-term preference memory live in the main app, not in this server. Email is read + label only — sending is deliberately not an MCP tool; drafts go through the assistant's approval card and a separate gated send path.
Related MCP server: mcp-gsuite
Run
cp .env.example .env # fill IMAP creds if you want email tools
uv sync
uv run src/run.pyInspect tools:
npx @modelcontextprotocol/inspector
# connect to http://localhost:8002/mcp (streamable-http)
# if ENABLE_AUTH=true, add header: Authorization: Bearer <MCP_AUTH_TOKEN>Test with the AI agent (LangChain agent over this server's tools):
export OPENAI_API_KEY=sk-... # or set it in .env
uv run ai_agent.py # example question
uv run ai_agent.py "add lunch with Alex to my calendar this Saturday at noon"ai_agent.py automatically sends the bearer token from MCP_AUTH_TOKEN when set.
Authentication
The MCP endpoint is protected by a static bearer token (Starlette
AuthenticationMiddleware + PersonalAuthBackend in src/auth/auth.py):
ENABLE_AUTH=true+MCP_AUTH_TOKEN=<random>in.env— clients must sendAuthorization: Bearer <token>; anything else gets401.ENABLE_AUTH=false— open access (local development).
Generate a token with openssl rand -hex 24.
Observability
Tracing: OpenTelemetry spans per request (
ENABLE_TRACE;TRACE_SPAN_TYPE=localprints to console,otlpexports to a collector).Logging: console + rotating file (
app.log, 1 MB x 3) viaLOG_LEVELandLOG_PATH. All tool failures are logged with tracebacks — start withgrep WARNING app.log/grep ERROR app.logwhen a tool misbehaves.
Tests
uv run pytest tests -vDocker
docker build -t mcp-server-personal .
docker run --rm -p 8002:8002 --env-file .env mcp-server-personalMulti-stage build, non-root user, prod dependencies only; state
(calendar.ics, personal.db, logs) lives in /app/data.
CI/CD
.github/workflows/ci.yaml— on PRs and pushes tomain:uv sync+pytest, then a Docker build (no push)..github/workflows/cd.yaml— manual (workflow_dispatch): builds and pushesghcr.io/<owner>/mcp-server-personal:<version>using the built-inGITHUB_TOKEN, with atest/prodenvironment choice.
This server cannot be installed
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
- 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/MayWei/mcp-server-personal'
If you have feedback or need assistance with the MCP directory API, please join our Discord server