Skip to main content
Glama
zeno-blade-creator

Trello MCP Server

Trello MCP

Claude(Desktop/Cowork Claude Code)를 Trello 보드에 연결합니다.

보드는 설정의 board_id로 선택됩니다. 특정 보드에 대한 하드코딩은 없습니다.

~/mcp-servers/trello-mcp/
    trello_mcp.py     the server — no credentials inside, safe to share
    requirements.txt  mcp==1.27.2 (pinned, see below)
    .venv/            dedicated Python 3.12 environment
~/.config/trello-mcp/config.json   credentials (chmod 600, never shared)

다음 두 곳에 등록됨:

  • ~/Library/Application Support/Claude/claude_desktop_config.json (Desktop/Cowork)

  • ~/.claude.json (Claude Code)

두 파일 모두 절대 경로의 venv 인터프리터를 가리킵니다. 이는 중요합니다. 아래 참조.


매일 아침 연결이 끊기던 이유

이전 설정은 서버를 python3라는 기본 명령어로 실행했습니다. 이 Mac에는 네 개의 python3 바이너리가 있으며 오직 하나만 mcp 패키지를 가지고 있습니다:

인터프리터

버전

mcp?

/usr/bin/python3

3.9.6

없음

/usr/local/bin/python3

3.9.6

없음

/Library/Frameworks/.../3.9/bin/python3

3.9.6

없음

/opt/anaconda3/bin/python3

3.12.7

있음

python3가 의미하는 바는 앱을 실행한 프로세스의 PATH에 따라 달라집니다. Finder 또는 로그인 시 실행되면 앱은 최소 launchd PATH(/usr/bin:/bin:/usr/sbin:/sbin)를 상속받아 Python 3.9를 사용하게 되고 → ModuleNotFoundError: No module named 'mcp'*"Trello MCP에 연결할 수 없습니다."*가 발생합니다. 터미널에서 실행되면 Anaconda가 우선인 셸 PATH를 상속받아 → 정상 작동합니다. 따라서: 대부분의 아침에는 고장나고, 수동으로 테스트할 때는 정상입니다.

이전 실패와 수정 사항을 재현합니다:

env -i PATH=/usr/bin:/bin:/usr/sbin:/sbin python3 "$HOME/Claude/Projects/Daily Trello/trello_mcp.py"   # ModuleNotFoundError
env -i PATH=/usr/bin:/bin:/usr/sbin:/sbin ~/mcp-servers/trello-mcp/.venv/bin/python3 -c "import mcp; print('ok')"  # ok

인터프리터를 절대 경로로 지정하면 PATH 조회가 전혀 발생하지 않습니다. 앱은 알려진 하나의 바이너리를 실행하고, 이 바이너리는 알려진 하나의 패키지 디렉토리를 찾습니다. 오전 7시나 오후 7시나 동일한 결과입니다.


Related MCP server: trello-mcp-server

venv가 실제로 무엇인지 (그리고 무엇을 보호하지 않는지)

Python은 실행 중인 특정 인터프리터에 연결된 디렉토리에서 설치된 패키지를 찾습니다. 네 개의 인터프리터 = 네 개의 별도 패키지 디렉토리; mcp는 오직 하나에만 설치되었습니다. venv는 이 서버만을 위한 개인 디렉토리를 생성합니다.

기술적으로: python3 -m venv .venv.venv/bin/python3와 기본 설치를 기록한 pyvenv.cfg를 생성합니다. 시작 시 인터프리터는 이 파일을 읽고 sys.prefix를 venv로 설정하여 import.venv/lib/python3.12/site-packages를 참조하도록 합니다.

솔직한 한계: macOS에서 venv는 인터프리터를 복사하지 않고 심볼릭 링크하며, 표준 라이브러리는 여전히 기본 설치에서 로드됩니다:

.venv/bin/python3 -> /opt/anaconda3/bin/python3
stdlib             = /opt/anaconda3/lib/python3.12

따라서 이 venv는 여전히 Anaconda가 설치되어 있어야 합니다. 패키지는 격리하지만 인터프리터는 격리하지 않습니다.

이벤트

생존 여부?

Anaconda 패키지 업데이트 (conda update)

Anaconda 3.12.x 포인트 업그레이드

macOS 업데이트

PATH 변경 (실제 버그)

셸/프로필 변경

Anaconda 제거

아니요 — 재구축 필요 (아래)

Anaconda가 Python 3.12 지원 중단

아니요 — 재구축 필요

이 폴더 이동/이름 변경

아니요 — 경로가 절대 경로임; 두 설정 모두 업데이트 필요

위 중 하나라도 발생한 후 재구축, 약 15초:

cd ~/mcp-servers/trello-mcp && rm -rf .venv
/path/to/any/python3.10+ -m venv .venv && ./.venv/bin/pip install -r requirements.txt

Anaconda로부터 완전히 독립하려면 uv를 설치하고 uv 관리형 독립 Python으로 venv를 구축하세요. 여기서는 하지 않았습니다. 새 도구를 추가해야 하기 때문입니다.

mcp를 무턱대고 업그레이드하지 마세요

requirements.txt**mcp==1.27.2**로 고정되어 있습니다. 의도적입니다: mcp 2.0.0은 이 서버가 기반으로 하는 @app.list_tools() / @app.call_tool() 데코레이터 API를 제거했습니다. 최신 버전을 설치하면 즉시 서버가 AttributeError: 'Server' object has no attribute 'list_tools' 오류와 함께 중단됩니다. 이는 이 모든 설정이 해결하려던 연결 실패와 똑같이 보입니다. 새 API에 맞게 핸들러를 다시 작성할 때만 업그레이드하세요.


자격 증명 파일 작동 방식

~/.config/trello-mcp/config.json:

{ "api_key": "...", "token": "...", "board_id": "676f0bfc11723d27f716291d" }

호스팅된 것도, 외부 서비스도 없습니다. 이 디스크의 일반 JSON 파일입니다. 두 가지가 "비밀"을 만듭니다:

  1. 코드 외부에 있으므로 trello_mcp.py를 복사하거나 게시해도 자격 증명이 포함되지 않습니다.

  2. chmod 600 — 이 macOS 사용자 계정만 읽을 수 있습니다.

서버는 시작 시 이 파일을 읽고 값을 메모리에 보관합니다. 서버를 공유하려면 trello_mcp.py를 보내고, 수신자는 자신의 Trello 키로 자신의 설정을 만듭니다. 이 값은 암호화가 아닙니다. 공유하는 것과 공유하지 않는 것을 분리하는 것입니다.

Trello 토큰은 만료되지 않으며(dateExpires: null) 회원/보드/조직 읽기+쓰기 범위를 가집니다. Google Drive 서버의 OAuth 갱신 토큰과 달리 주기적인 재인증이 필요하지 않습니다.


리스트는 절대 하드코딩되지 않습니다

모든 리스트는 호출 시점에 이름으로 실시간 API에 대해 확인되므로, Trello에 추가된 리스트(분기별 새 클래스)는 즉시 작동합니다. 코드 변경이나 재시작이 필요 없습니다. 60초 캐시가 이를 저렴하게 유지합니다. 캐시 미스 시 "찾을 수 없음"을 보고하기 전에 한 번 다시 가져오므로, 몇 초 전에 생성된 리스트도 여전히 확인됩니다.

이 보드에서 측정: 리스트 가져오기는 약 307ms입니다. 캐시가 없으면 모든 도구 호출이 이 비용을 지불했습니다(get_cards는 두 번의 왕복 비용). 따라서 12개 카드 계획 세션은 다시 가져오기만으로 약 3.7초를 소모했습니다. 캐시를 사용하면 한 번의 가져오기로 버스트를 처리합니다.

코드에 있는 유일한 리스트 이름은 trello_mcp.py 상단의 세 가지 워크플로우 앵커입니다:

LIST_TODO    = "To Do Today"
LIST_WORKING = "Working on"
LIST_DONE    = "Done Today"

이들은 이름이 지정되었습니다. 일상 루틴이 이들을 기준으로 정의되기 때문입니다(sort_todo_today는 이름 없이 "오늘을 의미하는 리스트를 정렬"하라고 지시할 수 없습니다). Trello에서 이름을 바꾸면 → 해당 블록과 Daily Trello CLAUDE.md에서 변경하세요. rename_list는 앵커 이름을 바꿀 때 경고합니다.


도구 (37개)

읽기get_all_lists, get_cards (첨부 파일, 레이블, 기한, 위치 포함), get_card (전체 세부 정보), search_cards, get_board_summary

카드create_card (첨부 파일/레이블/위치 포함), update_card, move_card, complete_card, archive_card, unarchive_card, copy_card, set_card_position, set_card_cover, sort_todo_today

첨부 파일get_attachments, add_attachment (URL 또는 로컬 파일 업로드), view_attachment (이미지 반환 — Claude가 카드의 스크린샷을 읽는 방식), delete_attachment

레이블get_labels, add_label_to_card, remove_label_from_card, create_label

댓글get_comments, add_comment

리스트create_list, rename_list, archive_list, move_list

체크리스트get_checklists, create_checklist, add_checklist_item, complete_checklist_item, uncheck_checklist_item, rename_checklist_item, delete_checklist_item, delete_checklist

알려진 보드 설정: 댓글 비활성화됨

add_comment보드 자체에서 댓글 기능이 꺼져 있기 때문에(prefs.comments: "disabled") 401을 반환합니다. 토큰이나 코드 문제가 아닙니다. 활성화하려면: Trello → 보드 메뉴 (···) → 설정 → 댓글 권한 → 보드 멤버. 도구가 이를 감지하고 원시 401 대신 설명을 제공합니다.

search_cards 참고 사항

Trello의 검색 인덱스는 몇 초 지연됩니다. 방금 생성된 카드는 즉시 나타나지 않을 수 있습니다. 대신 해당 리스트에서 get_cards를 사용하세요.


문제 해결

# 1. Does the interpreter still work?
~/mcp-servers/trello-mcp/.venv/bin/python3 -c "import mcp; print('ok')"

# 2. Does the server start and reach Trello? (Ctrl-C to exit; silence = healthy)
~/mcp-servers/trello-mcp/.venv/bin/python3 ~/mcp-servers/trello-mcp/trello_mcp.py

# 3. Are the configs still pointing at the venv?
grep -A3 '"trello"' ~/.claude.json "$HOME/Library/Application Support/Claude/claude_desktop_config.json"

설정을 변경한 후에는 앱을 완전히 종료하고 다시 열어야 합니다. MCP 서버는 시작 시에만 실행됩니다.

이 스크립트의 이전 복사본이 여전히 ~/Claude/Projects/Daily Trello/trello_mcp.py~/Downloads/trello_mcp.py에 있습니다. 아무도 이를 가리키지 않습니다. 여전히 포함된 자격 증명이 있으므로 이 두 파일은 공유하지 마세요.


이력서/포트폴리오용

향후 이력서 세션에서 재구성하는 대신 정직한 버전을 제공하기 위해 여기에 보관합니다.

말할 가치가 있는 이야기는 기능이 아니라 실패입니다. 이 서버는 몇 주 동안 매일 아침 실패했고, 수동으로 테스트할 때마다 정상 작동했습니다. 이것이 전체 진단입니다: 코드는 괜찮았고 환경이 문제였습니다. 설정은 python3를 지정했습니다. 로그인 시 실행된 앱은 최소 PATH(/usr/bin:/bin:/usr/sbin:/sbin)를 상속받아 필요한 패키지가 없는 시스템 Python으로 확인되는 반면, 터미널은 올바르게 확인되는 PATH를 상속받습니다. 셸에서 테스트하는 것은 통과가 보장된 유일한 경우였습니다.

내가 실제로 한 일: 디버깅을 지시했습니다. "테스트할 때 작동한다"는 것을 코드에 대한 안심이 아닌 테스트에 대한 증거로 취급하고, 편리한 조건 대신 실제 실행 조건(축소된 PATH)을 재현하는 테스트를 요구하는 결정은 제가 내렸습니다.

그 결과 모든 통합에 적용되었습니다: 설정의 절대 인터프리터 경로, 프로젝트별 전용 환경, 모든 종속성 고정, 그리고 알려진 각 실패 모드를 확인하고 수리 가능한 것을 수리하는 진단 스크립트.

포트폴리오 분량의 글머리 기호:

macOS를 클라우드 서비스에 연결하는 세 가지 자동화 통합 개발을 지시했으며, 예약된 작업에서 무인 실행되었습니다. 셸과 앱 실행 컨텍스트 간의 PATH 해석 차이로 인한 반복적인 일일 실패의 근본 원인을 찾아내고, 절대 경로 및 고정 종속성 규칙을 수립하여 세 통합 모두에서 해당 문제를 제거했습니다.

전체 사례 연구: https://zeno-blade-creator.github.io/projects/personal-integrations.html

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Manage projects, tasks, time tracking, and team collaboration through natural language.

  • Connect AI to your Attio CRM. Manage contacts, companies, deals, and sales pipelines. Create tasks…

  • Streamline your Attio workflows using natural language to search, create, update, and organize com…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zeno-blade-creator/trello-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server