
Atlassian
STDIOMCP server for interacting with Atlassian products (Confluence and Jira)
MCP server for interacting with Atlassian products (Confluence and Jira)
A Model Context Protocol (MCP) server that provides comprehensive tools for interacting with Atlassian products (Confluence and Jira).
This MCP server allows AI agents to interact with Atlassian products through a standardized interface. It provides extensive tools for:
Clone the repository:
git clone https://github.com/yourusername/mcp-atlassian.git cd mcp-atlassian
Install dependencies:
npm install # or using make make install
Create a .env
file in the root directory with your Atlassian credentials:
ATLASSIAN_HOST=https://your-domain.atlassian.net
[email protected]
ATLASSIAN_API_TOKEN=your-api-token
Clone the repository:
git clone https://github.com/yourusername/mcp-atlassian.git cd mcp-atlassian
Create a .env
file as described above.
Build and run the Docker container:
# Build the Docker image make docker-build # Run the Docker container make docker-run # Or use Docker Compose make docker-compose
# Using npm npm start # Using make make start # Using Docker make docker-run
This will start the MCP server, which will listen and respond on streamable HTTP.
"mcp-searchapi": { "name": "mcp-searchapi", "type": "streamable-http", "streamable": true, "url": "http://localhost:3007/mcp" }
Search & Discovery:
search_confluence: Search for content in Confluence using v1 API with CQL
searchText
(string), spaceKey
(string, optional), limit
(number), start
(number)search_confluence_pages_by_title: Search pages by title using v2 API
title
(string, optional), spaceId
(string, optional), limit
(number), cursor
(string, optional)Space Management:
get_confluence_space_by_id_or_key: Get information about a specific Confluence space
spaceIdOrKey
(string)get_confluence_spaces: Get all available spaces
limit
(number, optional), cursor
(string, optional)Page Management:
get_confluence_content: Get specific page content by ID
pageId
(string), bodyFormat
(enum: storage/atlas_doc_format/wiki, optional)get_confluence_pages: Get all pages in a space
spaceId
(string), limit
(number, optional), cursor
(string, optional)get_confluence_child_pages: Get child pages of a specific page
pageId
(string), limit
(number, optional), cursor
(string, optional)confluence_create_page: Create a new Confluence page
spaceId
(string), title
(string), content
(string), status
(enum, optional), representation
(enum, optional), parentId
(string, optional)confluence_update_page: Update an existing page
pageId
(string), title
(string), content
(string), version
(number), status
(enum, optional), representation
(enum, optional), versionMessage
(string, optional)update_confluence_page_title: Update only the title of a page
pageId
(string), title
(string), status
(enum, optional)confluence_delete_page: Delete a Confluence page
pageId
(string)Label Management:
get_confluence_pages_by_label: Find pages with specific labels
label
(string), spaceId
(string, optional), limit
(number, optional), cursor
(string, optional)get_confluence_page_labels: Get labels for a specific page
pageId
(string), limit
(number, optional), cursor
(string, optional)add_confluence_page_labels: Add labels to a page
pageId
(string), labels
(array of strings)Comments:
get_confluence_page_comments: Get regular comments on a page
pageId
(string), limit
(number, optional), cursor
(string, optional)add_confluence_page_comment: Add a comment to a page
pageId
(string), content
(string), representation
(enum, optional)get_confluence_page_inline_comments: Get inline comments on a page
pageId
(string), limit
(number, optional), cursor
(string, optional)create_confluence_footer_comment: Create a footer comment
pageId
(string, optional), blogPostId
(string, optional), parentCommentId
(string, optional), attachmentId
(string, optional), customContentId
(string, optional), content
(string), representation
(enum, optional)search_jira_issues: Search for issues using JQL (Jira Query Language)
jql
(string), maxResults
(number, optional)get_jira_issue: Get detailed information about a specific issue
issueKey
(string)jira_get_all_projects: Get all accessible projects
jira_create_issue: Create a new Jira issue
projectKey
(string), issueType
(string), summary
(string), description
(string, optional), additional fieldsjira_update_issue: Update an existing issue
issueKey
(string), fields
(object with update data)jira_add_comment: Add a comment to an issue
issueKey
(string), comment
(string)jira_get_transitions: Get available transitions for an issue
issueKey
(string)jira_transition_issue: Transition an issue to a different status
issueKey
(string), transitionId
(string), comment
(string, optional)This server primarily uses the Confluence v2 REST API for most operations, with strategic fallback to v1 API where necessary:
ENABLED_TOOLS
environment variablesrc/
├── config/ # Configuration files
│ └── env.ts # Environment configuration with validation
├── services/ # Service classes for Atlassian APIs
│ ├── confluencev2.ts # Confluence v2 REST API service (primary)
│ ├── confluence.ts # Legacy Confluence service (deprecated)
│ └── jira.ts # Jira REST API service
├── tools/ # MCP tool implementations
│ ├── search-confluence.ts # Content search (v1 API)
│ ├── search-confluence-pages-by-title.ts # Title search (v2 API)
│ ├── get-confluence-space.ts # Single space info
│ ├── get-confluence-spaces.ts # All spaces list
│ ├── get-confluence-content.ts # Page content by ID
│ ├── get-confluence-pages.ts # Pages in space
│ ├── get-confluence-child-pages.ts # Child pages
│ ├── get-confluence-pages-by-label.ts # Pages by label
│ ├── get-confluence-page-labels.ts # Page labels
│ ├── add-confluence-page-labels.ts # Add labels
│ ├── get-confluence-page-comments.ts # Page comments
│ ├── add-confluence-page-comment.ts # Add comment
│ ├── get-confluence-page-inline-comments.ts # Inline comments
│ ├── confluence-create-page.ts # Create page
│ ├── confluence-update-page.ts # Update page
│ ├── update-confluence-page-title.ts # Update title only
│ ├── confluence-delete-page.ts # Delete page
│ ├── create-confluence-footer-comment.ts # Footer comments
│ ├── search-jira-issues.ts # Jira search
│ ├── get-jira-issue.ts # Single issue
│ ├── jira-create-issue.ts # Create issue
│ ├── jira-update-issue.ts # Update issue
│ ├── jira-add-comment.ts # Add comment
│ ├── jira-get-transitions.ts # Get transitions
│ ├── jira-transition-issue.ts # Transition issue
│ ├── jira-get-all-projects.ts # All projects
│ ├── utils.ts # Utility functions & PII filtering
│ └── index.ts # Tool exports
├── utils/ # Utility modules
│ └── tool-filter.ts # Tool filtering and access control
└── index.ts # Main entry point and server setup
# Using npm npm run build # Using make make build
# Using npm npm test # Using make make test
The project includes a Makefile to simplify common operations:
# Display available commands make help
MIT
git checkout -b feature/amazing-feature
)git commit -m 'Add some amazing feature'
)git push origin feature/amazing-feature
)