Integrates GitLab, Jira, Confluence, YouTube, and Google AI to provide search capabilities and utility tools for streaml...
Created byApr 23, 2025
AIO-MCP Server
[](https://smithery.ai/server/@athapong/aio-mcp)
A powerful Model Context Protocol (MCP) server implementation with integrations for GitLab, Jira, Confluence, YouTube, and more. This server provides AI-powered search capabilities and various utility tools for development workflows.
Prerequisites
Go 1.23.2 or higher
Various API keys and tokens for the services you want to use
Installation
Installing via Smithery
To install AIO-MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@athapong/aio-mcp) (will guide you through interactive CLI setup):
*Note: Smithery will interactively prompt you for required configuration values and handle environment setup automatically*
Installing via Go
To set the `go install` command to install into the Go bin path, you need to ensure your Go environment variables are correctly configured. Here's how to do it:
First, ensure you have a properly set `GOPATH` environment variable, which by default is `$HOME/go` on Unix-like systems or `%USERPROFILE%\go` on Windows.
The `go install` command places binaries in `$GOPATH/bin` by default. Make sure this directory is in your system's `PATH` environment variable.
Here's how to set this up on different operating systems:
Linux/macOS:
After adding these lines, reload your shell configuration:
Windows (PowerShell):
Windows (Command Prompt):
After setting these variables, you can verify they're working correctly with:
Now when you run `go install`, the binaries will be installed to your `$GOPATH/bin` directory, which is in your PATH, so you can run them from anywhere.
Finally, install the server:
**Manual setup required** - Create a `.env` file with your configuration:
Config your claude's config:
or override environment values as
Enable Tools
There are a hidden variable `ENABLE_TOOLS` in the environment variable. It is a comma separated list of tools group to enable. If not set, all tools will be enabled. Leave it empty to enable all tools.
Here is the list of tools group:
`gemini`: Gemini-powered search
`fetch`: Fetch tools
`brave_search`: Brave Search tools
`google_maps`: Google Maps tools
`confluence`: Confluence tools
`youtube`: YouTube tools
`jira`: Jira tools
`gitlab`: GitLab tools
`script`: Script tools
`rag`: RAG tools
`deepseek`: Deepseek AI tools, including reasoning and advanced search if 'USE_OLLAMA_DEEPSEEK' is set to true, default ollama endpoint is http://localhost:11434 with model deepseek-r1:8b
Available Tools
calendar_create_event
Create a new event in Google Calendar
Arguments:
`summary` (String) (Required): Title of the event
`description` (String): Description of the event
`start_time` (String) (Required): Start time of the event in RFC3339 format (e.g., 2023-12-25T09:00:00Z)
`end_time` (String) (Required): End time of the event in RFC3339 format
`attendees` (String): Comma-separated list of attendee email addresses
calendar_list_events
List upcoming events in Google Calendar
Arguments:
`time_min` (String): Start time for the search in RFC3339 format (default: now)
`time_max` (String): End time for the search in RFC3339 format (default: 1 week from now)
`max_results` (Number): Maximum number of events to return (default: 10)
calendar_update_event
Update an existing event in Google Calendar
Arguments:
`event_id` (String) (Required): ID of the event to update
`summary` (String): New title of the event
`description` (String): New description of the event
`start_time` (String): New start time of the event in RFC3339 format
`end_time` (String): New end time of the event in RFC3339 format
`attendees` (String): Comma-separated list of new attendee email addresses
calendar_respond_to_event
Respond to an event invitation in Google Calendar
Arguments:
`event_id` (String) (Required): ID of the event to respond to
`response` (String) (Required): Your response (accepted, declined, or tentative)
confluence_search
Search Confluence
Arguments:
`query` (String) (Required): Atlassian Confluence Query Language (CQL)
confluence_get_page
Get Confluence page content
Arguments:
`page_id` (String) (Required): Confluence page ID
confluence_create_page
Create a new Confluence page
Arguments:
`space_key` (String) (Required): The key of the space where the page will be created
`title` (String) (Required): Title of the page
`content` (String) (Required): Content of the page in storage format (XHTML)
`parent_id` (String): ID of the parent page (optional)
confluence_update_page
Update an existing Confluence page
Arguments:
`page_id` (String) (Required): ID of the page to update
`title` (String): New title of the page (optional)
`content` (String): New content of the page in storage format (XHTML)
`version_number` (String): Version number for optimistic locking (optional)
confluence_compare_versions
Compare two versions of a Confluence page
Arguments:
`page_id` (String) (Required): Confluence page ID
`source_version` (String) (Required): Source version number
`target_version` (String) (Required): Target version number
deepseek_reasoning
advanced reasoning engine using Deepseek's AI capabilities for multi-step problem solving, critical analysis, and strategic decision support
Arguments:
`question` (String) (Required): The structured query or problem statement requiring deep analysis and reasoning
`context` (String) (Required): Defines the operational context and purpose of the query within the MCP ecosystem
`knowledge` (String): Provides relevant chat history, knowledge base entries, and structured data context for MCP-aware reasoning
get_web_content
Fetches content from a given HTTP/HTTPS URL. This tool allows you to retrieve text content from web pages, APIs, or any accessible HTTP endpoints. Returns the raw content as text.
Arguments:
`url` (String) (Required): The complete HTTP/HTTPS URL to fetch content from (e.g., https://example.com)
gchat_list_spaces
List all available Google Chat spaces/rooms
gchat_send_message
Send a message to a Google Chat space or direct message
Arguments:
`space_name` (String) (Required): Name of the space to send the message to
`message` (String) (Required): Text message to send
ai_web_search
search the web by using Google AI Search. Best tool to update realtime information
Arguments:
`question` (String) (Required): The question to ask. Should be a question
`context` (String) (Required): Context/purpose of the question, helps Gemini to understand the question better
gitlab_list_projects
List GitLab projects
Arguments:
`group_id` (String) (Required): gitlab group ID
`search` (String): Multiple terms can be provided, separated by an escaped space, either + or %20, and will be ANDed together. Example: one+two will match substrings one and two (in any order).
Transition an issue through its workflow using a valid transition ID. Get available transitions from jira_get_issue
Arguments:
`issue_key` (String) (Required): The issue to transition (e.g., KP-123)
`transition_id` (String) (Required): Transition ID from available transitions list
`comment` (String): Optional comment to add with transition
RAG_memory_index_content
Index a content into memory, can be inserted or updated
Arguments:
`collection` (String) (Required): Memory collection name
`filePath` (String) (Required): content file path
`payload` (String) (Required): Plain text payload
`model` (String): Embedding model to use (default: text-embedding-3-large)
RAG_memory_index_file
Index a local file into memory
Arguments:
`collection` (String) (Required): Memory collection name
`filePath` (String) (Required): Path to the local file to be indexed
RAG_memory_create_collection
Create a new vector collection in memory
Arguments:
`collection` (String) (Required): Memory collection name
`model` (String): Embedding model to use (default: text-embedding-3-large)
RAG_memory_delete_collection
Delete a vector collection in memory
Arguments:
`collection` (String) (Required): Memory collection name
RAG_memory_list_collections
List all vector collections in memory
RAG_memory_search
Search for memory in a collection based on a query
Arguments:
`collection` (String) (Required): Memory collection name
`query` (String) (Required): search query, should be a keyword
`model` (String): Embedding model to use (default: text-embedding-3-large)
RAG_memory_delete_index_by_filepath
Delete a vector index by filePath
Arguments:
`collection` (String) (Required): Memory collection name
`filePath` (String) (Required): Path to the local file to be deleted
execute_comand_line_script
Safely execute command line scripts on the user's system with security restrictions. Features sandboxed execution, timeout protection, and output capture. Supports cross-platform scripting with automatic environment detection.
Arguments:
`content` (String) (Required):
`interpreter` (String) (Default: /bin/sh): Path to interpreter binary (e.g. /bin/sh, /bin/bash, /usr/bin/python, cmd.exe). Validated against allowed list for security
`working_dir` (String): Execution directory path (default: user home). Validated to prevent unauthorized access to system locations
web_search
Search the web using Brave Search API
Arguments:
`query` (String) (Required): Query to search for (max 400 chars, 50 words)
`count` (Number) (Default: 5): Number of results (1-20, default 5)
`country` (String) (Default: ALL): Country code
sequentialthinking
`A detailed tool for dynamic and reflective problem-solving through thoughts.
This tool helps analyze problems through a flexible thinking process that can adapt and evolve.
Each thought can build on, question, or revise previous insights as understanding deepens.
When to use this tool:
Breaking down complex problems into steps
Planning and design with room for revision
Analysis that might need course correction
Problems where the full scope might not be clear initially
Problems that require a multi-step solution
Tasks that need to maintain context over multiple steps
Situations where irrelevant information needs to be filtered out
Key features:
You can adjust total_thoughts up or down as you progress
You can question or revise previous thoughts
You can add more thoughts even after reaching what seemed like the end
You can express uncertainty and explore alternative approaches
Not every thought needs to build linearly - you can branch or backtrack
Generates a solution hypothesis
Verifies the hypothesis based on the Chain of Thought steps
Repeats the process until satisfied
Provides a correct answer
Parameters explained:
thought: Your current thinking step, which can include:
Regular analytical steps
Revisions of previous thoughts
Questions about previous decisions
Realizations about needing more analysis
Changes in approach
Hypothesis generation
Hypothesis verification
next_thought_needed: True if you need more thinking, even if at what seemed like the end
thought_number: Current number in sequence (can go beyond initial total if needed)
total_thoughts: Current estimate of thoughts needed (can be adjusted up/down)
is_revision: A boolean indicating if this thought revises previous thinking
revises_thought: If is_revision is true, which thought number is being reconsidered
branch_from_thought: If branching, which thought number is the branching point
branch_id: Identifier for the current branch (if any)
needs_more_thoughts: If reaching end but realizing more thoughts needed
You should:
Start with an initial estimate of needed thoughts, but be ready to adjust
Feel free to question or revise previous thoughts
Don't hesitate to add more thoughts if needed, even at the "end"
Express uncertainty when present
Mark thoughts that revise previous thinking or branch into new paths
Ignore information that is irrelevant to the current step
Generate a solution hypothesis when appropriate
Verify the hypothesis based on the Chain of Thought steps
Repeat the process until satisfied with the solution
Provide a single, ideally correct answer as the final output
Only set next_thought_needed to false when truly done and a satisfactory answer is reached`
Arguments:
`thought` (String) (Required): Your current thinking step
`nextThoughtNeeded` (Boolean) (Required): Whether another thought step is needed
`thoughtNumber` (Number) (Required): Current thought number
`totalThoughts` (Number) (Required): Estimated total thoughts needed
`isRevision` (Boolean): Whether this revises previous thinking
`revisesThought` (Number): Which thought is being reconsidered
`branchFromThought` (Number): Branching point thought number
`branchId` (String): Branch identifier
`needsMoreThoughts` (Boolean): If more thoughts are needed
`result` (String): Final result or conclusion from this thought
`summary` (String): Brief summary of the thought's key points
sequentialthinking_history
Retrieve the thought history for the current thinking process
Arguments:
`branchId` (String): Optional branch ID to get history for
tool_manager
Manage MCP tools - enable or disable tools
Arguments:
`action` (String) (Required): Action to perform: list, enable, disable
`tool_name` (String): Tool name to enable/disable
tool_use_plan
Create a plan using available tools to solve the request
Arguments:
`request` (String) (Required): Request to plan for
`context` (String) (Required): Context related to the request
youtube_transcript
Get YouTube video transcript
Arguments:
`video_id` (String) (Required): YouTube video ID
youtube_update_video
Update a video's title and description on YouTube
Arguments:
`video_id` (String) (Required): ID of the video to update
`title` (String) (Required): New title of the video
`description` (String) (Required): New description of the video
`keywords` (String) (Required): Comma-separated list of keywords for the video
`category` (String) (Required): Category ID for the video. See https://developers.google.com/youtube/v3/docs/videoCategories/list for more information.
youtube_get_video_details
Get details (title, description, ...) for a specific video
Arguments:
`video_id` (String) (Required): ID of the video
youtube_list_videos
List YouTube videos managed by the user
Arguments:
`channel_id` (String) (Required): ID of the channel to list videos for
`max_results` (Number) (Required): Maximum number of videos to return