Processes Outlook email by date range, stores messages in SQLite and builds vector embeddings in MongoDB for semantic search.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add outlook-email --env COLLECTION_NAME='<COLLECTION_NAME>' --env EMBEDDING_BASE_URL='<EMBEDDING_BASE_URL>' --env EMBEDDING_MODEL='<EMBEDDING_MODEL>' --env MONGODB_URI='<MONGODB_URI>' --env PROCESS_DELETED_ITEMS='<PROCESS_DELETED_ITEMS>' --env SQLITE_DB_PATH='<SQLITE_DB_PATH>' -- uv venv .venv~/.codex/config.toml
[mcp_servers.outlook-email]
command = "uv"
args = ["venv", ".venv"]
env = { COLLECTION_NAME = "<COLLECTION_NAME>", EMBEDDING_BASE_URL = "<EMBEDDING_BASE_URL>", EMBEDDING_MODEL = "<EMBEDDING_MODEL>", MONGODB_URI = "<MONGODB_URI>", PROCESS_DELETED_ITEMS = "<PROCESS_DELETED_ITEMS>", SQLITE_DB_PATH = "<SQLITE_DB_PATH>" }
# codex mcp add outlook-email --env COLLECTION_NAME='<COLLECTION_NAME>' --env EMBEDDING_BASE_URL='<EMBEDDING_BASE_URL>' --env EMBEDDING_MODEL='<EMBEDDING_MODEL>' --env MONGODB_URI='<MONGODB_URI>' --env PROCESS_DELETED_ITEMS='<PROCESS_DELETED_ITEMS>' --env SQLITE_DB_PATH='<SQLITE_DB_PATH>' -- uv venv .venv~/.cursor/mcp.json
{
"mcpServers": {
"outlook-email": {
"command": "uv",
"args": [
"venv",
".venv"
],
"env": {
"COLLECTION_NAME": "<COLLECTION_NAME>",
"EMBEDDING_BASE_URL": "<EMBEDDING_BASE_URL>",
"EMBEDDING_MODEL": "<EMBEDDING_MODEL>",
"MONGODB_URI": "<MONGODB_URI>",
"PROCESS_DELETED_ITEMS": "<PROCESS_DELETED_ITEMS>",
"SQLITE_DB_PATH": "<SQLITE_DB_PATH>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"outlook-email": {
"type": "stdio",
"command": "uv",
"args": [
"venv",
".venv"
],
"env": {
"COLLECTION_NAME": "<COLLECTION_NAME>",
"EMBEDDING_BASE_URL": "<EMBEDDING_BASE_URL>",
"EMBEDDING_MODEL": "<EMBEDDING_MODEL>",
"MONGODB_URI": "<MONGODB_URI>",
"PROCESS_DELETED_ITEMS": "<PROCESS_DELETED_ITEMS>",
"SQLITE_DB_PATH": "<SQLITE_DB_PATH>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"outlook-email": {
"command": "uv",
"args": [
"venv",
".venv"
],
"env": {
"COLLECTION_NAME": "<COLLECTION_NAME>",
"EMBEDDING_BASE_URL": "<EMBEDDING_BASE_URL>",
"EMBEDDING_MODEL": "<EMBEDDING_MODEL>",
"MONGODB_URI": "<MONGODB_URI>",
"PROCESS_DELETED_ITEMS": "<PROCESS_DELETED_ITEMS>",
"SQLITE_DB_PATH": "<SQLITE_DB_PATH>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"outlook-email": {
"command": "uv",
"args": [
"venv",
".venv"
],
"env": {
"COLLECTION_NAME": "<COLLECTION_NAME>",
"EMBEDDING_BASE_URL": "<EMBEDDING_BASE_URL>",
"EMBEDDING_MODEL": "<EMBEDDING_MODEL>",
"MONGODB_URI": "<MONGODB_URI>",
"PROCESS_DELETED_ITEMS": "<PROCESS_DELETED_ITEMS>",
"SQLITE_DB_PATH": "<SQLITE_DB_PATH>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"outlook-email": {
"command": "uv",
"args": [
"venv",
".venv"
],
"env": {
"COLLECTION_NAME": "<COLLECTION_NAME>",
"EMBEDDING_BASE_URL": "<EMBEDDING_BASE_URL>",
"EMBEDDING_MODEL": "<EMBEDDING_MODEL>",
"MONGODB_URI": "<MONGODB_URI>",
"PROCESS_DELETED_ITEMS": "<PROCESS_DELETED_ITEMS>",
"SQLITE_DB_PATH": "<SQLITE_DB_PATH>"
}
}
}
}Environment variables
COLLECTION_NAMEEMBEDDING_BASE_URLEMBEDDING_MODELMONGODB_URIPROCESS_DELETED_ITEMSSQLITE_DB_PATH
Replace the placeholders with your own credentials and keep them out of version control.