calendar_create_eventLABSCO SUMMARY
`ENABLE_TOOLS` is the setting that decides whether this is usable.
With everything on, the tool list is long enough to crowd a model's context, and each group silently needs its own credentials. Enabling the two or three groups you actually have tokens for turns it into a focused server, and tool_manager lets you toggle the rest at runtime. The script executor runs shell commands with an interpreter allowlist and a working-directory check — worth deciding about deliberately rather than inheriting it from the default group set.
What it is
An aggregate MCP server for development and workplace tooling. Rather than running eight separate servers, it exposes each integration as a tool group and lets you enable only the groups you have credentials for. Alongside the service integrations it carries a RAG memory store on Qdrant, a shell-script executor, a Deepseek reasoning tool and a sequential-thinking scratchpad.
What you get
- GitLab work: projects, merge requests and their notes, file contents at a ref, pipelines, commits and user events, plus creating an MR or cloning a repo locally —
gitlab_list_projects,gitlab_get_project,gitlab_list_mrs,gitlab_get_mr_details,gitlab_create_MR_note,gitlab_get_file_content,gitlab_list_pipelines,gitlab_list_commits,gitlab_get_commit_details,gitlab_list_user_events,gitlab_list_group_users,gitlab_create_mr,gitlab_clone_repo - Jira issues read, searched with JQL, created, updated and transitioned, with the board's sprints and the project's status IDs —
jira_get_issue,jira_search_issue,jira_list_sprints,jira_create_issue,jira_update_issue,jira_list_statuses,jira_transition_issue - Confluence pages searched with CQL, read, created, updated and diffed between versions —
confluence_search,confluence_get_page,confluence_create_page,confluence_update_page,confluence_compare_versions - Gmail searched with Gmail query syntax, plus filter and label management and moving messages to spam —
gmail_search,gmail_create_filter,gmail_list_filters,gmail_delete_filter,gmail_list_labels,gmail_delete_label,gmail_move_to_spam - Google Calendar events listed, created, updated and responded to, and Google Chat spaces listed and posted into —
calendar_list_events,calendar_create_event,calendar_update_event,calendar_respond_to_event,gchat_list_spaces,gchat_send_message - A vector memory on Qdrant: create and list collections, index a file or a text payload, search a collection, and delete an index by file path —
RAG_memory_create_collection,RAG_memory_list_collections,RAG_memory_index_file,RAG_memory_index_content,RAG_memory_search,RAG_memory_delete_index_by_filepath,RAG_memory_delete_collection - Web and page access, YouTube transcripts and video management, a sandboxed script runner, and reasoning helpers —
web_search,ai_web_search,get_web_content,youtube_transcript,youtube_list_videos,youtube_get_video_details,youtube_update_video,execute_comand_line_script,deepseek_reasoning,sequentialthinking,sequentialthinking_history,tool_manager,tool_use_plan
Requirements
Go 1.23.2 or higher to install with go install github.com/athapong/aio-mcp@latest, or the Smithery installer. Credentials are per integration and all live in one .env file or the client's env block: GITLAB_HOST and GITLAB_TOKEN, ATLASSIAN_HOST, ATLASSIAN_EMAIL and ATLASSIAN_TOKEN, BRAVE_API_KEY, GOOGLE_AI_API_KEY, GOOGLE_CREDENTIALS_FILE and GOOGLE_TOKEN_FILE, QDRANT_HOST, QDRANT_PORT and QDRANT_API_KEY, plus OPENAI_API_KEY and OPENAI_EMBEDDING_MODEL for embeddings. ENABLE_TOOLS is a comma-separated list of groups — gemini, fetch, brave_search, google_maps, confluence, youtube, jira, gitlab, script, rag, deepseek — and leaving it empty enables everything. It speaks stdio by default; ENABLE_SSE=true with SSE_ADDR and SSE_BASE_PATH (or the matching -sse flags) serves /sse and /message over HTTP instead.
Setup effort
One command — go install github.com/athapong/aio-mcp@latest
USE CASES
Reviewing a merge request without leaving the assistant
List the open MRs on a project, read the details and the changed file at that ref, then post the review comment back onto the MR.
Turning a bug report into a tracked ticket
Search existing issues with JQL first, then create the issue and move it through the workflow using the project's real transition IDs.
Keeping a searchable memory of project documents
Create a collection, index files or pasted text into it, and search it semantically later — with a delete path for documents that changed.
Writing a Confluence page from what the team already published
Search the space with CQL, read the pages that matched, and create or update the page — comparing versions when someone else edited in between.
61 tools
Listed in project docs. Your client may show a different list.
calendar_list_eventscalendar_update_eventcalendar_respond_to_eventconfluence_searchconfluence_get_pageconfluence_create_pageconfluence_update_pageconfluence_compare_versionsdeepseek_reasoningget_web_contentgchat_list_spacesgchat_send_messageai_web_searchgitlab_list_projectsgitlab_get_projectgitlab_list_mrsgitlab_get_mr_detailsgitlab_create_MR_notegitlab_get_file_contentgitlab_list_pipelinesgitlab_list_commitsgitlab_get_commit_detailsgitlab_list_user_eventsgitlab_list_group_usersgitlab_create_mrgitlab_clone_repogmail_searchgmail_move_to_spamgmail_create_filtergmail_list_filtersgmail_list_labelsgmail_delete_filtergmail_delete_labeljira_get_issuejira_search_issuejira_list_sprintsjira_create_issuejira_update_issuejira_list_statusesjira_transition_issueRAG_memory_index_contentRAG_memory_index_fileRAG_memory_create_collectionRAG_memory_delete_collectionRAG_memory_list_collectionsRAG_memory_searchRAG_memory_delete_index_by_filepathexecute_comand_line_scriptweb_searchsequentialthinkingsequentialthinking_historytool_managertool_use_planyoutube_transcriptyoutube_update_videoyoutube_get_video_detailsyoutube_list_videosmaps_location_searchmaps_geocodingmaps_place_detailsBEFORE YOU INSTALL
What to know first
Tools you get
61 tools named in the project's documentation.
Requires
- aio-mcp on PATH
- Go 1.23.2 or later
Optional
- GITLAB_TOKEN in your environment
- BRAVE_API_KEY in your environment
- ATLASSIAN_TOKEN in your environment
- GOOGLE_AI_API_KEY in your environment
- OPENAI_API_KEY in your environment
- DEEPSEEK_API_KEY in your environment
- GOOGLE_TOKEN_FILE in your environment
- GOOGLE_CREDENTIALS_FILE in your environment
- QDRANT_API_KEY in your environment
- GOOGLE_MAPS_API_KEY in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
go install github.com/athapong/aio-mcp@latestMCP Clients
Claude Desktop
{
"mcpServers": {
"aio-mcp": {
"command": "aio-mcp",
"env": {
"ENABLE_TOOLS": "",
"OPENAI_BASE_URL": "",
"GOOGLE_AI_API_KEY": "",
"GITLAB_TOKEN": "",
"GITLAB_HOST": "",
"QDRANT_HOST": "",
"QDRANT_API_KEY": "",
"PROXY_URL": "",
"OPENAI_API_KEY": "",
"GOOGLE_TOKEN_FILE": "",
"GOOGLE_CREDENTIALS_FILE": "",
"ATLASSIAN_TOKEN": "",
"BRAVE_API_KEY": "",
"QDRANT_PORT": "",
"ATLASSIAN_HOST": "",
"ATLASSIAN_EMAIL": "",
"USE_OPENROUTER": "",
"DEEPSEEK_API_KEY": "",
"OPENROUTER_API_KEY": "",
"DEEPSEEK_API_BASE": "",
"USE_OLLAMA_DEEPSEEK": "",
"OLLAMA_URL": ""
}
}
}
}Only the tool groups you use need credentials; leave the rest empty. ENABLE_TOOLS takes a comma-separated list of groups (gitlab, jira, confluence, rag and so on); left empty, every group is on. The google_maps group reads GOOGLE_MAPS_API_KEY, which this block does not list: add it to "env" if you use that group. Leave out the -sse flags from the README's other example: they switch the server to HTTP, which a client that launches it cannot talk to.