MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Redmine for AI agents: issues, projects, wiki, attachments, time entries and release analytics
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
REDMINE_URL, REDMINE_API_KEY, REDMINE_MCP_WRITE_ENABLEDค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"redmine": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"REDMINE_URL",
"-e",
"REDMINE_API_KEY",
"-e",
"REDMINE_MCP_WRITE_ENABLED",
"ghcr.io/igorolv/redmine-mcp-server:0.1.1"
],
"env": {
"REDMINE_URL": "ใส่ค่าของคุณ",
"REDMINE_API_KEY": "ใส่ค่าของคุณ",
"REDMINE_MCP_WRITE_ENABLED": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add redmine --env REDMINE_URL='ใส่ค่าของคุณ' --env REDMINE_API_KEY='ใส่ค่าของคุณ' --env REDMINE_MCP_WRITE_ENABLED='ใส่ค่าของคุณ' -- docker run -i --rm -e REDMINE_URL -e REDMINE_API_KEY -e REDMINE_MCP_WRITE_ENABLED ghcr.io/igorolv/redmine-mcp-server:0.1.1เติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"redmine": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"REDMINE_URL",
"-e",
"REDMINE_API_KEY",
"-e",
"REDMINE_MCP_WRITE_ENABLED",
"ghcr.io/igorolv/redmine-mcp-server:0.1.1"
],
"env": {
"REDMINE_URL": "ใส่ค่าของคุณ",
"REDMINE_API_KEY": "ใส่ค่าของคุณ",
"REDMINE_MCP_WRITE_ENABLED": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"redmine": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"REDMINE_URL",
"-e",
"REDMINE_API_KEY",
"-e",
"REDMINE_MCP_WRITE_ENABLED",
"ghcr.io/igorolv/redmine-mcp-server:0.1.1"
],
"env": {
"REDMINE_URL": "ใส่ค่าของคุณ",
"REDMINE_API_KEY": "ใส่ค่าของคุณ",
"REDMINE_MCP_WRITE_ENABLED": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
REDMINE_MCP_WRITE_ENABLED envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub igorolv ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: REDMINE_URL, REDMINE_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 39 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย
ในหมวดเดียวกันมี MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
An MCP server retrieving transcripts of YouTube videos
GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.
AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A local MCP server for accessing a corporate Redmine instance. It exposes a limited set of write operations for issues, time entries, and wiki alongside the read tools; set REDMINE_MCP_WRITE_ENABLED=false to run fully read-only. It lets AI agents (Claude Code, Cursor, VS Code Copilot, etc.) work with issues, projects, members, versions, wiki, attachments, time entries, and reference data.
This documentation covers installing and connecting Redmine MCP Server itself. Installing and configuring the AI clients themselves is out of scope here.
redmine-mcp-server.jar from the latest release, or build it yourself: ./gradlew bootJar (see Build). A Docker image is published as well.REDMINE_URL and REDMINE_API_KEY (see Configuration).For Claude Code that is one command:
claude mcp add --scope user -e REDMINE_URL=https://redmine.example.com -e REDMINE_API_KEY=your_key -- redmine java -jar /path/to/redmine-mcp-server.jar
The server supports only the stdio transport.
┌─────────────┐ stdio ┌──────────────────┐ REST API ┌──────────┐
│ AI agent │ <------------> │ redmine-mcp- │ -------------> │ Redmine │ │ (Claude Code│ stdin/stdout │ server (Java) │ HTTP + API │ (corp.) │ │ Cursor...) │ │ │ Key │ │ └─────────────┘ └──────────────────┘ └──────────┘
The AI client launches the server as a child process; communication follows the MCP protocol over stdin/stdout.
The server exports 32 read-only MCP tools plus 7 write tools by default. Set REDMINE_MCP_WRITE_ENABLED=false to remove the write tools and run fully read-only.
| Tool | Description |
|---|---|
getCurrentUser | Current user: ID, login, groups, projects. Useful for "my issues" filtering |
| Tool | Description |
|---|---|
listProjects | List of all accessible projects |
getProject | Project details: trackers, modules, description |
listProjectMembers | Project members with roles |
listVersions | Project versions (milestones) |
| Tool | Description |
|---|---|
listIssues | Issue list with filters: project, status, tracker, assignee, priority, version, saved query, custom fields (customFieldFilters in cf_ =value format), sorting |
searchIssues | Full-text issue search with detailed results |
getIssue | Issue details: description, status, assignee, dates, notes, relations, custom fields, attachments, linked revisions (changesets). Parameters: issueId, focus (default, implementation, timeline, full; optional) |
getIssueJournal | A single complete issue journal note/event without response compression. Parameters: issueId, journalId |
getMyIssues | Issues of the current user. Parameters: projectId, statusId, sort, limit, offset |
getIssueTree | Parent chain and subtasks. root and ancestors keep the Issue JSON shape but contain compact context; call getIssue for full details or relations. Parameters: issueId, depth (default 2, max 5) |
getIssueHistory | Creation and every journal event, with status intervals. Long text is shortened; journalId identifies the full entry for getIssueJournal. Follow nextOffset with the optional offset parameter until it is absent. |
These tools appear in tools/list by default; set REDMINE_MCP_WRITE_ENABLED=false to remove them:
| Tool | Description |
|---|---|
createIssue | Creates an issue. Supports core Redmine fields and custom fields via customFieldsJson |
updateIssue | Partially updates the specified fields of an existing issue |
addIssueNote | Adds a note to the issue journal |
attachFileToIssue | Uploads a file from any readable local path and attaches it to the issue |
createTimeEntry | Creates a time entry for the user from REDMINE_API_KEY; accepts exactly one of issueId/projectId, hours, date, activity, comment, and custom fields |
createWikiPage | Creates a wiki page and rejects the request if the page already exists |
updateWikiPage | Fully replaces the wiki page text, requiring the optimistic-lock version returned by getWikiPage |
Redmine itself enforces the permissions, workflow, and required-field rules of the REDMINE_API_KEY user. The MCP server introduces no additional model of "own" issues or notes. To make AI-created issues recognizable, the description of an issue created by createIssue is prefixed with AI_EDIT: by default (updateIssue does not add it). Notes, time-entry comments, wiki revision comments, and uploaded file names are not marked by default; each marker is configured separately with a REDMINE_MCP_WRITE_*_PREFIX variable (see Configuration), and an empty value turns it off. Issue descriptions and notes get the prefix on its own line followed by a blank line; single-line fields (time-entry and wiki revision comments) get the prefix and a space; file names get the prefix with no separator. Wiki page markup itself is never changed.
Editing and deleting existing notes is not implemented: the targeted Redmine 4.0.4 does not provide a compatible REST API for it. Editing and deleting time entries; deleting, renaming, and protecting wiki pages; and creating time entries on behalf of another user are outside the current operation set.
| Tool | Description |
|---|---|
searchAll | Global Redmine search: issues, wiki, news, documents, commits, etc. Parameters: searchQuery, projectId, types, limit, offset |
| Tool | Description |
|---|---|
getAttachment | Downloads the original attachment file into a local snapshot directory, returns localPath/fileUri, and immediately adds text context to parts[] if the format is supported: txt/log/xml/json/csv, PDF, Word (.docx), Excel (.xlsx), PowerPoint (.pptx), ZIP. A ZIP may yield a separate part per entry. A .docx yields one text part: pandoc markdown when pandoc is available, POI plain text otherwise. Parameters: issueId, attachmentId, maxChars, partLimit (see *Processing Limits*) |
getWikiPage | Content of a project wiki page |
listWikiPages | List of all wiki pages of a project |
searchWikiPages | Full-text search across wiki pages. Parameters: searchQuery, projectId, limit, offset |
| Tool | Description |
|---|---|
listTimeEntries | Logged time with filters: project, issue, user, period |
getMyTimeEntries | Logged time of the current user. Parameters: projectId, issueId, from, to, limit, offset |
| Tool | Description |
|---|---|
listQueries | Saved queries (custom filters) — ID + name. Use the ID with listIssues(queryId) to apply the filter, including custom-field filters |
listStatuses | All issue statuses (ID + name) — for filtering in listIssues |
listTrackers | All trackers (ID + name) — for filtering in listIssues |
listPriorities | All priorities (ID + name) — for filtering in listIssues |
listIssueCategories | Issue categories of a project (ID + name) |
listTimeEntryActivities | Activity types for interpreting existing time entries (ID + name) |
| Tool | Description |
|---|---|
getProjectSummary | Aggregated project summary: overall open/closed count; analyzed open issues broken down by status, tracker, priority, assignee; overdue issues; estimated/spent hours. Analyzes up to 500 open issues and returns a truncation flag. Parameters: projectId, versionId (optional) |
getUserWorkload | Workload analysis: open issues by project and priority, overdue issues, top issues. Analyzes up to 500 open issues and returns a truncation flag. Parameters: userId (optional, defaults to current user), projectId (optional) |
getVersionChangelog | Version issues grouped by tracker, open/closed statistics. Analyzes up to 500 issues and returns a truncation flag. Parameters: projectId, versionId |
getBlockerChain | Recursive traversal of the blocking chain (blocks/blocked_by) upward and downward, limited to depth 10 and 30 loaded issues. Parameters: issueId |
getStaleIssues | Open issues not updated for N days, oldest first. Parameters: projectId, daysSinceUpdate (default 30), limit |
getReleaseRisks | Release risk assessment: blockers, overdue items, high-priority issues, unassigned issues. Analyzes up to 500 open issues and returns a truncation flag. Parameters: projectId, versionId |
compareVersions | Compares two versions: unique issues, shared issues, closure percentage. Analyzes up to 500 issues per version and returns a truncation flag. Parameters: projectId, versionId1, versionId2 |
With REDMINE_MCP_WRITE_ENABLED=false all tools are read-only and no data in Redmine is modified.
Tools are grouped by domain, and each group can be disabled via an environment variable. All groups are enabled by default — the out-of-the-box tool manifest is unchanged. Disabling groups shrinks the MCP tools/list manifest that the client loads into model context at session start. This helps small-context (local) models: disable unneeded groups so only the tools the model actually needs remain.
| Variable | Group (tools) |
|---|---|
REDMINE_MCP_TOOLS_ISSUE | Issues (core): listIssues, searchIssues, getIssue, getMyIssues, getIssueJournal |
REDMINE_MCP_TOOLS_ISSUE_STRUCTURE | Issue structure/history: getIssueTree, getIssueHistory |
REDMINE_MCP_TOOLS_PROJECT | Projects: listProjects, getProject, listProjectMembers, listVersions |
REDMINE_MCP_TOOLS_SEARCH | Search: searchAll |
REDMINE_MCP_TOOLS_ATTACHMENT | Attachments: getAttachment |
REDMINE_MCP_TOOLS_WIKI | Wiki: getWikiPage, listWikiPages, searchWikiPages |
REDMINE_MCP_TOOLS_TIME_ENTRY | Time entries: listTimeEntries, getMyTimeEntries |
REDMINE_MCP_TOOLS_REFERENCE_DATA | Reference data: listQueries, listStatuses, listTrackers, listPriorities, listIssueCategories, listTimeEntryActivities |
REDMINE_MCP_TOOLS_USER | User: getCurrentUser |
REDMINE_MCP_TOOLS_ISSUE_ANALYTICS | Issue analytics: getBlockerChain, getStaleIssues |
REDMINE_MCP_TOOLS_RELEASE_ANALYTICS | Release/project analytics: getProjectSummary, getUserWorkload, getVersionChangelog, getReleaseRisks, compareVersions |
Each variable accepts true (default) or false. Example: to keep only issue and project work, disable the remaining groups — REDMINE_MCP_TOOLS_RELEASE_ANALYTICS=false, `REDMI
ตัดมาแค่ช่วงต้น อ่านต่อใน repo