Jira Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Jira Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A comprehensive Model Context Protocol (MCP) server for Jira integration, reproducing the exact functionality from the Dust repository. This server provides 16 powerful tools for complete Jira project management through AI assistants.
git clone <repository-url>
cd mcp-jira
npm install cp .env.example .env
# Edit .env with your Jira credentials npm run buildCreate a .env file in the project root:
# Required: Your Jira API token
JIRA_API_TOKEN=your_api_token_here
# Required: Your Jira account email
[email protected]
# Required: Your Jira instance URL (no trailing slash)
JIRA_BASE_URL=https://yourcompany.atlassian.net
# Optional: Server port (default: 3000)
PORT=3000npm run devnpm run build
npm startThe server will start on port 3000 (or your configured PORT).
curl http://localhost:3000/healthimport { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const client = new Client({
name: 'jira-test-client',
version: '1.0.0'
});
const transport = new StreamableHTTPClientTransport(
new URL('http://localhost:3000/mcp')
);
await client.connect(transport);
// Test connection
const connectionInfo = await client.callTool('jira_get_connection_info', {});
console.log('Connection:', connectionInfo);
// Search for issues
const issues = await client.callTool('jira_search_issues', {
projectKey: 'PROJ',
maxResults: 10
});
console.log('Issues:', issues);
// Create an issue
const newIssue = await client.callTool('jira_create_issue', {
projectKey: 'PROJ',
issueType: 'Task',
summary: 'Test issue from MCP',
description: 'Created via MCP server'
});
console.log('New issue:', newIssue);Add to your Claude Code MCP configuration:
{
"mcpServers": {
"jira": {
"command": "node",
"args": ["/path/to/mcp-jira/dist/server.js"],
"env": {
"JIRA_API_TOKEN": "your_token",
"JIRA_EMAIL": "[email protected]",
"JIRA_BASE_URL": "https://yourcompany.atlassian.net"
}
}
}
}mcp-jira/
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── .env.example # Environment variable template
├── src/
│ ├── server.ts # Main MCP server with 16 tools
│ ├── jira_api_helper.ts # Jira API integration functions
│ ├── types.ts # Zod schemas and TypeScript types
│ ├── utils.ts # MCP utilities and helpers
│ └── file_utils.ts # File handling utilities
├── dist/ # Compiled JavaScript (after build)
└── README.md # This documentationnpm run build - Compile TypeScript to JavaScriptnpm run dev - Run in development mode with hot reloadnpm start - Run the compiled servernpm run clean - Remove compiled filesResult<T, Error>/health endpointjira_get_connection_info to test basic connectivitySet environment variable for detailed logging:
DEBUG=mcp-jira npm run devMIT License
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.