Atlassian
STDIOAtlassian产品交互MCP服务器
Atlassian产品交互MCP服务器
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)