kagura

mcp
Guvenlik Denetimi
Uyari
Health Uyari
  • No license — Repository has no license file
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Uyari
  • process.env — Environment variable access in packages/live-cli/src/cli.ts
Permissions Gecti
  • Permissions — No dangerous permissions requested
Purpose
This MCP server integrates Anthropic's Claude Agent SDK directly into Slack workspaces. It handles thread-aware conversations, streaming replies, and persistent memory by routing user requests to a targeted repository and executing the agent within that directory.

Security Assessment
Overall Risk: Medium. The tool requires several sensitive Slack and API tokens (bot token, app token, signing secret) to function, which are loaded via environment variables in the CLI. During operation, the agent interacts with local files and executes tasks within a specified local repository (`REPO_ROOT_DIR`), meaning it inherently has the ability to read and modify local files based on user prompts. The automated scan confirms there are no hardcoded secrets and no dangerous permissions requested. Network requests are primarily made to the Slack API to send and receive messages via Socket Mode.

Quality Assessment
The project is actively maintained, with its most recent code pushed today. However, its community footprint is currently very small, with only 5 stars on GitHub. This low visibility means it hasn't been widely battle-tested or reviewed by the broader developer community. Additionally, the repository lacks a license file. From a legal and compliance standpoint, this means all rights are technically reserved by the author, which may restrict how organizations can safely use, modify, or distribute the software.

Verdict
Use with caution — it handles local files and sensitive workspace credentials, requires a proper license for broad organizational use, and currently lacks widespread community trust.
SUMMARY

A divine dance of AI in Slack — Kagura runs Claude Agent SDK natively in your workspace with thread-aware context, streaming UX, and persistent memory.

README.md

🎭 Kagura

Every thread a stage, every response a dance

Node version
TypeScript
pnpm

In Japanese mythology, Ame-no-Uzume performed a divine dance before the closed doors of Amano-Iwato — the heavenly rock cave where Amaterasu had hidden herself, plunging the world into darkness. Her dance, accompanied by music and laughter, drew the sun goddess back into the world. This was the first kagura (神楽) — "the entertainment of the gods."

Kagura brings that spirit to Slack. Run Anthropic Claude Agent SDK natively in your workspace — @mention the bot, it routes the session into the right repository, and replies with Slack-native rich text, live progress, and persistent memory.

Why

Running a Claude agent inside Slack requires gluing together thread context, workspace routing, streaming UX, session persistence, and memory — all adapted to Slack's API conventions. kagura handles that full lifecycle via Socket Mode, so you can focus on the agent's behavior.

How it works

@mention / Message Action
  → resolve target repo
  → load thread history (text + files + images)
  → run agent in repo cwd
  → stream progress → post rich-text reply and generated attachments
  → persist session & memory to SQLite

Features

Conversation — Thread-aware multimodal context (text + files + images), session resumption across restarts, layered memory (global / workspace / preferences).

Slack UX — Rich text rendering (headings, lists, code blocks, auto-splitting), live progress indicators, reaction lifecycle, native assistant typing.

Workspace routing — Each thread binds to a repo/workdir. Auto-detected from message text, or manually chosen via Message Action.

Agent control — Pluggable provider registry, stop via :octagonal_sign: reaction or message shortcut, slash commands for introspection (/usage, /workspace, /memory, /session, /version, /provider).

Operations — Auto-provisioned manifest (commands + shortcuts), online-presence heartbeat, Home tab, Zod-validated inputs, secret redaction in logs.

Getting started

git clone https://github.com/Innei/kagura.git
cd kagura
pnpm install
cp .env.example .env # fill in SLACK_BOT_TOKEN, SLACK_APP_TOKEN, SLACK_SIGNING_SECRET, REPO_ROOT_DIR
pnpm dev             # or: pnpm build && pnpm start

See docs/configuration.md for the full environment variable reference, Slack app manifest, token rotation, and Docker deployment.

Documentation

Document Contents
Configuration Environment variables, Slack manifest, token rotation, Docker
Architecture Composition root, agent providers, rendering, workspace routing, memory model, project structure
Slash commands & controls All slash commands, stop controls, reaction lifecycle
Live E2E testing E2E setup, environment, running scenarios
Specs Detailed subsystem specifications

Scripts

Command Description
pnpm dev Run with nodemon + tsx
pnpm build Compile TypeScript
pnpm test Run Vitest test suite
pnpm start Run compiled output
pnpm typecheck Type-check without emitting
pnpm e2e Run all live Slack E2E cases
pnpm e2e -- <id> Run a specific scenario by id
pnpm e2e -- --interactive Interactive scenario picker
pnpm e2e -- --list List all discovered scenarios
pnpm e2e -- --search <term> Search/filter by keyword
pnpm db:generate Generate Drizzle migrations
pnpm db:migrate Apply migrations
pnpm db:studio Open Drizzle Studio

License

MIT © Innei, Released under the MIT License.

Personal Website · GitHub @Innei

Yorumlar (0)

Sonuc bulunamadi