jussinurminen/mcp-server
If you are the rightful owner of mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
This document provides a structured overview of a Slack-driven Model Context Protocol (MCP) server designed to interface with Jira through a language model-agnostic router.
Slack-Driven MCP PoC (Slack ↔ LLM Router ↔ MCP ↔ Jira)
This PoC turns Slack into a front-end to control Jira via an MCP server. The design is LLM-model-agnostic: you can route via OpenAI, Claude, or local Ollama. Out of the box, the router supports a simple rule-based fallback and optional Ollama calls.
Chat language: Finnish; code and docs in English (per user preference).
High-Level Flow
Slack (user) → Slack Bolt App → LLM Router (/interpret) → MCP Server → Jira Tool → Slack
Folders
slack-mcp-poc/
├─ mcp-server/
│ ├─ tools/
│ │ └─ jira_tool.js
│ ├─ server.js
│ ├─ package.json
│ └─ .env.local
├─ slack-app/
│ ├─ slash_commands/
│ │ └─ jira.js
│ ├─ app.js
│ ├─ package.json
│ └─ .env.local
└─ shared/
└─ schema/
└─ intent.schema.json
Quick Start
1) MCP Server
cd mcp-server
cp .env.local .env
npm install
npm start
Environment (.env):
PORT=8080
# Optional LLM router (local)
OLLAMA_URL=http://localhost:11434
# JIRA
JIRA_BASE_URL=https://your-domain.atlassian.net
JIRA_EMAIL=your.email@example.com
JIRA_API_TOKEN=your_jira_api_token
2) Slack App
Create a Slack App (Bolt for JS). Enable:
- Slash Commands:
/ask,/jira - Interactivity
Set environment in slack-app/.env (copy from .env.local).
cd slack-app
cp .env.local .env
npm install
npm start
Environment (.env):
SLACK_SIGNING_SECRET=...
SLACK_BOT_TOKEN=xoxb-...
MCP_BASE_URL=http://localhost:8080
Slash Commands
-
/ask <free-form natural language>- Example:
/ask näytä avoimet tiketit projektissa SAM - Slack app → MCP
/interpret→ resolves tojira_tool.list_issues
- Example:
-
/jira create "Summary" --project SAM --type Task- Slack app → MCP
/jira(direct deterministic call)
- Slack app → MCP
Notes
- Intent Schema is defined in
shared/schema/intent.schema.json. - Model-agnostic: swap OpenAI/Ollama/Claude by adjusting router in
mcp-server/server.js. - Security: Do not commit
.env. For prod, use a secret manager. - Auditing: Add Winston/OpenTelemetry later if needed.
License
MIT (PoC quality).