THE PROJECT IS MOVED
THE PROJECT HAS BEEN SPLIT AND MOVED TO INDIVIDUAL REPOSITORIES.
- Google Kit: Tools for Gmail, Google Calendar, Google Chat
- RAG Kit: Tools for RAG, Memory
- Dev Kit: Tools for developers, jira, confluence, gitlab, github, ...
- Fetch Kit: Tools for fetch, scrape, ...
- Research Kit: Tools for research, academic, reasoning, ...
MyMCP Server
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.
Community
For community support, discussions, and updates, please visit our forum at community.aiocean.io.
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 MyMCP Server for Claude Desktop automatically via Smithery (will guide you through interactive CLI setup):
npx -y @smithery/cli install @nguyenvanduocit/all-in-one-model-context-protocol --client claudeNote: Smithery will interactively prompt you for required configuration values and handle environment setup automatically
Installing via Go
- Install the server:
go install github.com/nguyenvanduocit/all-in-one-model-context-protocol@latest- Manual setup required - Create a
.envfile with your configuration:
ENABLE_TOOLS=
QDRANT_HOST=
ATLASSIAN_HOST=
ATLASSIAN_EMAIL=
GITLAB_HOST=
GITLAB_TOKEN=
BRAVE_API_KEY=
ATLASSIAN_TOKEN=
GOOGLE_AI_API_KEY=
PROXY_URL=
OPENAI_API_KEY=
DEEPSEEK_API_KEY=
QDRANT_PORT=
GOOGLE_TOKEN_FILE=
GOOGLE_CREDENTIALS_FILE=
QDRANT_API_KEY=- Config your claude's config:
{
"mcpServers": {
"my_mcp_server": {
"command": "all-in-one-model-context-protocol",
"args": ["-env", "/path/to/.env"],
}
}
}Secret
GOOGLE_TOKEN_FILE is using for Google AI like Gemini, Google Search, Google Calendar, etc.
GOOGLE_CREDENTIALS_FILE is service account for advanced feature like Google Chat. You need to create project in Google Cloud Console and create service account. Then also need to create Google cloud bot chat for it. Ask any LLM model to create these for you.
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 searchfetch: Fetch toolsconfluence: Confluence toolsyoutube: YouTube toolsjira: Jira toolsgitlab: GitLab toolsscript: Script toolsrag: RAG toolsdeepseek: Deepseek AI tools
Available Tools
calendar_create_event
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
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 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
calendar_respond_to_event
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)
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 createdtitle(String) (Required): Title of the pagecontent(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 updatetitle(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)
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 reasoningcontext(String) (Required): Defines the operational context and purpose of the query within the MCP ecosystemknowledge(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 tomessage(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 questioncontext(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 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).
gitlab_get_project
Get GitLab project details
Arguments:
project_path(String) (Required): Project/repo path
gitlab_list_mrs
List merge requests
Arguments:
project_path(String) (Required): Project/repo pathstate(String) (Default: all): MR state (opened/closed/merged)
gitlab_get_mr_details
Get merge request details
Arguments:
project_path(String) (Required): Project/repo pathmr_iid(String) (Required): Merge request IID
gitlab_create_MR_note
Create a note on a merge request
Arguments:
project_path(String) (Required): Project/repo pathmr_iid(String) (Required): Merge request IIDcomment(String) (Required): Comment text
gitlab_get_file_content
Get file content from a GitLab repository
Arguments:
project_path(String) (Required): Project/repo pathfile_path(String) (Required): Path to the file in the repositoryref(String) (Required): Branch name, tag, or commit SHA
gitlab_list_pipelines
List pipelines for a GitLab project
Arguments:
project_path(String) (Required): Project/repo pathstatus(String) (Default: all): Pipeline status (running/pending/success/failed/canceled/skipped/all)
gitlab_list_commits
List commits in a GitLab project within a date range
Arguments:
project_path(String) (Required): Project/repo pathsince(String) (Required): Start date (YYYY-MM-DD)until(String): End date (YYYY-MM-DD). If not provided, defaults to current dateref(String) (Required): Branch name, tag, or commit SHA
gitlab_get_commit_details
Get details of a commit
Arguments:
project_path(String) (Required): Project/repo pathcommit_sha(String) (Required): Commit SHA
gitlab_list_user_events
List GitLab user events within a date range
Arguments:
username(String) (Required): GitLab usernamesince(String) (Required): Start date (YYYY-MM-DD)until(String): End date (YYYY-MM-DD). If not provided, defaults to current date
gitlab_list_group_users
List all users in a GitLab group
Arguments:
group_id(String) (Required): GitLab group ID
gitlab_create_mr
Create a new merge request
Arguments:
project_path(String) (Required): Project/repo pathsource_branch(String) (Required): Source branch nametarget_branch(String) (Required): Target branch nametitle(String) (Required): Merge request titledescription(String): Merge request description
gmail_search
Search emails in Gmail using Gmail's search syntax
Arguments:
query(String) (Required): Gmail search query. Follow Gmail's search syntax
gmail_move_to_spam
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
gmail_create_filter
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
gmail_list_filters
List all Gmail filters in the account
gmail_list_labels
List all Gmail labels in the account
gmail_delete_filter
Delete a Gmail filter by its ID
Arguments:
filter_id(String) (Required): The ID of the filter to delete
gmail_delete_label
Delete a Gmail label by its ID
Arguments:
label_id(String) (Required): The ID of the label to delete
jira_get_issue
Retrieve detailed information about a specific Jira issue including its status, assignee, description, subtasks, and available transitions
Arguments:
issue_key(String) (Required): The unique identifier of the Jira issue (e.g., KP-2, PROJ-123)
jira_search_issue
Search for Jira issues using JQL (Jira Query Language). Returns key details like summary, status, assignee, and priority for matching issues
Arguments:
jql(String) (Required): JQL query string (e.g., 'project = KP AND status = "In Progress"')
jira_list_sprints
List all active and future sprints fo
…