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.
For community support, discussions, and updates, please visit our forum at community.aiocean.io.
- Go 1.23.2 or higher
- Various API keys and tokens for the services you want to use
- Install the server:
go install github.com/nguyenvanduocit/all-in-one-model-context-protocol@latest
- Config your claude's config:
{
"mcpServers": {
"my_mcp_server": {
"command": "all-in-one-model-context-protocol",
"args": [],
"env": {
"QDRANT_HOST": "",
"ATLASSIAN_HOST": "",
"ATLASSIAN_EMAIL": "",
"GITLAB_HOST": "",
"GITLAB_TOKEN": "",
"BRAVE_API_KEY": "",
"ENABLE_TOOLS": "Check environment variable first for backward compatibility",
"ATLASSIAN_TOKEN": "",
"GOOGLE_AI_API_KEY": "",
"PROXY_URL": "",
"OPENAI_API_KEY": "",
"QDRANT_PORT": "",
"GOOGLE_TOKEN_FILE": "",
"GOOGLE_CREDENTIALS_FILE": "",
"QDRANT_API_KEY": ""
}
}
}
}
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 searchfetch
: Fetch toolsconfluence
: Confluence toolsyoutube
: YouTube toolsjira
: Jira toolsgitlab
: GitLab toolsscript
: Script toolsrag
: RAG tools
Create a new event in Google Calendar
Arguments:
summary
(String) (Required): Title of the eventdescription
(String): Description of the eventstart_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 formatattendees
(String): Comma-separated list of attendee email addresses
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)
Update an existing event in Google Calendar
Arguments:
event_id
(String) (Required): ID of the event to updatesummary
(String): New title of the eventdescription
(String): New description of the eventstart_time
(String): New start time of the event in RFC3339 formatend_time
(String): New end time of the event in RFC3339 formatattendees
(String): Comma-separated list of new attendee email addresses
Respond to an event invitation in Google Calendar
Arguments:
event_id
(String) (Required): ID of the event to respond toresponse
(String) (Required): Your response (accepted, declined, or tentative)
Search Confluence
Arguments:
query
(String) (Required): Atlassian Confluence Query Language (CQL)
Get Confluence page content
Arguments:
page_id
(String) (Required): Confluence page ID
Fetch/read a http URL and return the content
Arguments:
url
(String) (Required): URL to fetch
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 questioncontext
(String) (Required): Context/purpose of the question, helps Gemini to understand the question better
List GitLab projects
Arguments:
group_id
(String) (Required): gitlab group IDsearch
(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).
Get GitLab project details
Arguments:
project_id
(String) (Required): Project ID or path
List merge requests
Arguments:
project_id
(String) (Required): Project ID or pathstate
(String) (Default: all): MR state (opened/closed/merged)
Get merge request details
Arguments:
project_id
(String) (Required): Project ID or pathmr_iid
(String) (Required): Merge request IID
Create a note on a merge request
Arguments:
project_id
(String) (Required): Project ID or pathmr_iid
(String) (Required): Merge request IIDcomment
(String) (Required): Comment text
Get file content from a GitLab repository
Arguments:
project_id
(String) (Required): Project ID or pathfile_path
(String) (Required): Path to the file in the repositoryref
(String) (Default: develop): Branch name, tag, or commit SHA
List pipelines for a GitLab project
Arguments:
project_id
(String) (Required): Project ID or pathstatus
(String) (Default: all): Pipeline status (running/pending/success/failed/canceled/skipped/all)
List commits in a GitLab project within a date range
Arguments:
project_id
(String) (Required): Project ID or pathsince
(String) (Required): Start date (YYYY-MM-DD)until
(String) (Required): End date (YYYY-MM-DD)ref
(String) (Default: develop): Branch name, tag, or commit SHA
Get details of a commit
Arguments:
project_id
(String) (Required): Project ID or pathcommit_sha
(String) (Required): Commit SHA
List GitLab user events within a date range
Arguments:
username
(String) (Required): GitLab usernamesince
(String) (Required): Start date (YYYY-MM-DD)until
(String) (Required): End date (YYYY-MM-DD)
List all users in a GitLab group
Arguments:
group_id
(String) (Required): GitLab group ID
Create a new merge request
Arguments:
project_id
(String) (Required): Project ID or pathsource_branch
(String) (Required): Source branch nametarget_branch
(String) (Required): Target branch nametitle
(String) (Required): Merge request titledescription
(String): Merge request description
Search emails in Gmail using Gmail's search syntax
Arguments:
query
(String) (Required): Gmail search query. Follow Gmail's search syntax
Move specific emails to spam folder in Gmail by message IDs
Arguments:
message_ids
(String) (Required): Comma-separated list of message IDs to move to spam
Create a Gmail filter with specified criteria and actions
Arguments:
from
(String): Filter emails from this senderto
(String): Filter emails to this recipientsubject
(String): Filter emails with this subjectquery
(String): Additional search query criteriaadd_label
(Boolean): Add label to matching messageslabel_name
(String): Name of the label to add (required if add_label is true)mark_important
(Boolean): Mark matching messages as importantmark_read
(Boolean): Mark matching messages as readarchive
(Boolean): Archive matching messages
List all Gmail filters in the account
List all Gmail labels in the account
Delete a Gmail filter by its ID
Arguments:
filter_id
(String) (Required): The ID of the filter to delete
Delete a Gmail label by its ID
Arguments:
label_id
(String) (Required): The ID of the label to delete
Get Jira issue details
Arguments:
issue_key
(String) (Required): Jira issue key (e.g., KP-2)
Search/list for Jira issues by JQL
Arguments:
jql
(String) (Required): JQL query to search/list for Jira issues
List all sprints in a Jira project
Arguments:
board_id
(String) (Required): Jira board ID
Create a new Jira issue
Arguments:
project_key
(String) (Required): Jira project key (e.g., KP)summary
(String) (Required): Summary of the issuedescription
(String) (Required): Description of the issueissue_type
(String) (Required): Type of the issue (e.g., Bug, Task)
Update an existing Jira issue
Arguments:
issue_key
(String) (Required): Jira issue key (e.g., KP-2)summary
(String): New summary of the issuedescription
(String): New description of the issuestatus
(String): New status of the issue
Index a note into memory, can be inserted or updated
Arguments:
collection
(String) (Required): Memory collection namefilePath
(String) (Required): note file pathpayload
(String) (Required): Plain text payload
Index a local file into memory
Arguments:
collection
(String) (Required): Memory collection namefilePath
(String) (Required): Path to the local file to be indexed
Create a new vector collection in memory
Arguments:
collection
(String) (Required): Memory collection name
Delete a vector collection in memory
Arguments:
collection
(String) (Required): Memory collection name
List all vector collections in memory
Search for notes in a collection based on a query
Arguments:
collection
(String) (Required): Memory collection namequery
(String) (Required): Search term, should be a keyword or a phrase
Delete a vector index by filePath
Arguments:
collection
(String) (Required): Memory collection namefilePath
(String) (Required): Path to the local file to be deleted
Execute a script file on user machine. Non interactive. Do not do unsafe operations
Arguments:
content
(String) (Required):interpreter
(String) (Default: /bin/sh): Script interpreter (e.g., /bin/sh, /bin/bash, python, etc.)working_dir
(String): Working directory for script execution
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
Get YouTube video transcript
Arguments:
url
(String) (Required): YouTube video URLlang
(String) (Default: en): Language code (default: en)country
(String) (Default: US): Country code (default: US)