mcp-ticketer 0.4.1__tar.gz → 0.4.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mcp-ticketer might be problematic. Click here for more details.
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.env.example +11 -4
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/CHANGELOG.md +72 -1
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/PKG-INFO +90 -17
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/README.md +86 -14
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/AI_CLIENT_INTEGRATION.md +38 -37
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/API_REFERENCE.md +103 -0
- mcp_ticketer-0.4.3/docs/ATTACHMENTS.md +564 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/MIGRATION_GUIDE.md +196 -10
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/QUICK_START.md +121 -22
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/setup/CODEX_INTEGRATION.md +27 -18
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/summaries/INTERACTIVE_CLI_SETUP_SUMMARY.md +4 -3
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/pyproject.toml +5 -4
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/pytest.ini +1 -0
- mcp_ticketer-0.4.3/src/mcp_ticketer/__init__.py +18 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/__version__.py +1 -1
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/adapters/aitrackdown.py +243 -11
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/adapters/github.py +15 -14
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/adapters/hybrid.py +11 -11
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/adapters/jira.py +22 -25
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/adapters/linear/adapter.py +9 -21
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/adapters/linear/client.py +2 -1
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/adapters/linear/mappers.py +2 -1
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cache/memory.py +6 -5
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/adapter_diagnostics.py +4 -2
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/auggie_configure.py +66 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/codex_configure.py +70 -2
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/configure.py +7 -14
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/diagnostics.py +2 -2
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/discover.py +6 -11
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/gemini_configure.py +68 -2
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/linear_commands.py +6 -7
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/main.py +341 -203
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/mcp_configure.py +61 -2
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/ticket_commands.py +27 -30
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/utils.py +23 -22
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/core/__init__.py +3 -1
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/core/adapter.py +82 -13
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/core/config.py +27 -29
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/core/env_discovery.py +10 -10
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/core/env_loader.py +8 -8
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/core/http_client.py +16 -16
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/core/mappers.py +10 -10
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/core/models.py +50 -20
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/core/project_config.py +40 -34
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/core/registry.py +2 -2
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/mcp/dto.py +32 -32
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/mcp/response_builder.py +2 -2
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/mcp/server.py +17 -37
- mcp_ticketer-0.4.3/src/mcp_ticketer/mcp/server_sdk.py +93 -0
- mcp_ticketer-0.4.3/src/mcp_ticketer/mcp/tools/__init__.py +36 -0
- mcp_ticketer-0.4.3/src/mcp_ticketer/mcp/tools/attachment_tools.py +179 -0
- mcp_ticketer-0.4.3/src/mcp_ticketer/mcp/tools/bulk_tools.py +273 -0
- mcp_ticketer-0.4.3/src/mcp_ticketer/mcp/tools/comment_tools.py +90 -0
- mcp_ticketer-0.4.3/src/mcp_ticketer/mcp/tools/hierarchy_tools.py +383 -0
- mcp_ticketer-0.4.3/src/mcp_ticketer/mcp/tools/pr_tools.py +154 -0
- mcp_ticketer-0.4.3/src/mcp_ticketer/mcp/tools/search_tools.py +206 -0
- mcp_ticketer-0.4.3/src/mcp_ticketer/mcp/tools/ticket_tools.py +277 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/queue/health_monitor.py +4 -4
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/queue/manager.py +2 -2
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/queue/queue.py +16 -16
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/queue/ticket_registry.py +7 -7
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/queue/worker.py +2 -2
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer.egg-info/PKG-INFO +90 -17
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer.egg-info/SOURCES.txt +11 -12
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer.egg-info/requires.txt +2 -1
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/linear/test_client.py +2 -5
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/linear/test_mappers.py +9 -13
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/linear/test_queries.py +8 -24
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/linear/test_types.py +9 -11
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/test_aitrackdown.py +2 -8
- mcp_ticketer-0.4.3/tests/adapters/test_aitrackdown_security.py +338 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/test_github.py +2 -1
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/test_jira_direct.py +2 -1
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/test_linear_config.py +0 -1
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/test_linear_native.py +2 -2
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/conftest.py +2 -8
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/core/test_env_discovery.py +3 -6
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/core/test_unified_env_loading.py +2 -5
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/e2e/test_complete_ticket_workflow.py +2 -8
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/e2e/test_complete_workflow.py +1 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/integration/test_all_adapters.py +4 -9
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/integration/test_commenting_functionality.py +2 -1
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/integration/test_comprehensive.py +2 -8
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/integration/test_hierarchy_and_workflow.py +2 -8
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/integration/test_mcp_server_qa.py +2 -2
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/test_api_usage.py +2 -1
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/test_models.py +2 -8
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/unit/test_cache_memory.py +2 -6
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/unit/test_core_exceptions.py +6 -14
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/unit/test_core_models.py +2 -9
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/unit/test_core_registry.py +5 -5
- mcp_ticketer-0.4.1/CLI_RESTRUCTURING_SUMMARY.md +0 -272
- mcp_ticketer-0.4.1/LINEAR_ADAPTER_REVIEW.md +0 -477
- mcp_ticketer-0.4.1/LINEAR_FIX_RECOMMENDATION.md +0 -292
- mcp_ticketer-0.4.1/LINEAR_GRAPHQL_TYPE_ANALYSIS.md +0 -300
- mcp_ticketer-0.4.1/LINEAR_LABEL_FIX_SUMMARY.md +0 -262
- mcp_ticketer-0.4.1/LINEAR_PATTERN_COMPARISON.md +0 -441
- mcp_ticketer-0.4.1/LINEAR_QUERY_ALTERNATIVE_ANALYSIS.md +0 -278
- mcp_ticketer-0.4.1/LINEAR_RESEARCH_SUMMARY.md +0 -423
- mcp_ticketer-0.4.1/LINEAR_TAGS_FIX_SUMMARY.md +0 -238
- mcp_ticketer-0.4.1/QUICK_WINS_IMPLEMENTATION.md +0 -320
- mcp_ticketer-0.4.1/SECURITY_SCAN_REPORT_v0.1.24.md +0 -668
- mcp_ticketer-0.4.1/V0.3.2_RELEASE_FIXES_SUMMARY.md +0 -472
- mcp_ticketer-0.4.1/src/mcp_ticketer/__init__.py +0 -27
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.aitrackdown-test/comments/comment-20251024141042175430.json +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.aitrackdown-test/comments/comment-20251024141042175768.json +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.aitrackdown-test/comments/comment-20251024141042175888.json +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.aitrackdown-test/comments/comment-20251024141042175987.json +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.aitrackdown-test/comments/comment-20251024141042176075.json +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.aitrackdown-test/comments/comment-20251024141042176163.json +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.aitrackdown-test/tickets/task-20251024141042175062.json +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.aitrackdown-test/tickets/task-20251024141042175285.json +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.claude.json +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.coveragerc +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.cursor/mcp.json +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.github/workflows/docs.yml +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.github/workflows/publish.yml +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.github/workflows/test.yml +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.mcp/config.json +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.pre-commit-config.yaml +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.python-version +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/.readthedocs.yaml +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/CLAUDE.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/LICENSE +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/MANIFEST.in +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/Makefile +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/debug_epic_creation.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/debug_full_flow.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/debug_worker_epic.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/ADAPTERS.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/CONFIGURATION.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/CONFIG_RESOLUTION_FLOW.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/DEVELOPER_GUIDE.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/ENV_DISCOVERY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/MCP_INTEGRATION.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/PROJECT_CONFIG.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/PR_INTEGRATION.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/QUEUE_SYSTEM.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/QUICK_START_ENV.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/README.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/USER_GUIDE.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/VERSIONING_AND_BUILD_TRACKING.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_archive/README.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/ADAPTERS.md.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/API_REFERENCE.md.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/CONFIGURATION.md.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/DEVELOPER_GUIDE.md.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/MCP_INTEGRATION.md.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/MIGRATION_GUIDE.md.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/USER_GUIDE.md.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/adapters/github.md.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/adapters.rst.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/api.rst.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/cli.rst.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/development.rst.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/examples.rst.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/index.rst.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/installation.rst.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/_build/_sources/prd/mcp-ticketer-prd.md.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/adapters/github.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/adapters.rst +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/api.rst +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/changelogs/CHANGELOG_v0.2.0.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/changelogs/CHANGELOG_v0.3.0.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/changelogs/CHANGELOG_v0.3.1.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/cli.rst +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/conf.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/development/CODE_STRUCTURE.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/development/CONTRIBUTING.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/development/RELEASE.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/development/RELEASING.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/development.rst +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/examples.rst +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/guides/BULLETPROOF_TICKET_CREATION_GUIDE.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/index.rst +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/installation.rst +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/prd/mcp-ticketer-prd.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/releases/PUBLICATION_GUIDE_v0.2.0.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/releases/PUBLICATION_SUCCESS_v0.2.0.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/releases/PUBLICATION_SUCCESS_v0.3.0.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/releases/PUBLICATION_SUCCESS_v0.3.1.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/releases/PUBLICATION_SUCCESS_v0.3.4.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/releases/PUBLICATION_SUCCESS_v0.3.5.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/releases/RELEASE_v0.1.39_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/releases/RELEASE_v0.2.0_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/CONFIG_RESOLUTION_FIX.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/CREDENTIAL_VALIDATION_FIX.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/DIAGNOSTICS_FEATURE.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/ENV_DISCOVERY_COMPLETE.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/FIX_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/HIERARCHY_IMPLEMENTATION_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/IMPLEMENTATION_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/MCP_CONFIGURATION_TEST_REPORT.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/OPTIMIZATION_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/PROJECT_INITIALIZATION_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/TEST_COVERAGE_REPORT.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/TEST_REPORT.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/TEST_RESULTS_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/reports/VERIFICATION_RESULTS.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/requirements.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/setup/CLAUDE_DESKTOP_SETUP.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/setup/JIRA_SETUP.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/setup/LINEAR_SETUP.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/summaries/AUTO_DISCOVERY_BUG_FIX_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/summaries/BULLETPROOF_IMPROVEMENTS_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/summaries/COMMAND_SYNONYMS_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/summaries/COMPREHENSIVE_TESTING_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/summaries/LINEAR_ADAPTER_INITIALIZATION_BUG_FIX.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/summaries/MODULE_REFACTORING_ANALYSIS.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/summaries/MODULE_REFACTORING_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/summaries/PROJECT_CLEANUP_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/docs/summaries/REFACTORED_ENV_SOLUTION_SUMMARY.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/mcp-ticketer +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/mcp-ticketer-server +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/requirements-dev.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/requirements.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/scripts/README.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/scripts/install.sh +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/scripts/manage_version.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/scripts/mcp_server.sh +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/scripts/test_set_command.sh +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/setup.cfg +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/setup.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/adapters/__init__.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/adapters/linear/__init__.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/adapters/linear/queries.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/adapters/linear/types.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/adapters/linear.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cache/__init__.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/__init__.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/migrate_config.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/platform_commands.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/queue_commands.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/cli/simple_health.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/core/exceptions.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/mcp/__init__.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/mcp/constants.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/py.typed +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/queue/__init__.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/queue/__main__.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer/queue/run_worker.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer.egg-info/dependency_links.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer.egg-info/entry_points.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer.egg-info/not-zip-safe +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/src/mcp_ticketer.egg-info/top_level.txt +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/test-tickets/tickets/task-20250924002724.json +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/test_linear_fixes.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/test_worker_persistence.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/README.md +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/__init__.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/linear/__init__.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/linear/test_adapter.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/test_github_token.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/test_jira.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/test_jira_projects.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/adapters/test_linear.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/core/debug_credential_validation.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/core/test_actual_worker_execution.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/core/test_config_resolution.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/core/test_environment_handoff.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/core/test_queue_processing.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/core/test_queue_system.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/debug/debug_adapter_cache.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/debug/debug_cli_config.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/debug/debug_cli_vs_simulation.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/debug/debug_linear_teams.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/debug/debug_search.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/debug/debug_test.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/debug/debug_worker_adapter.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/debug/debug_worker_simulation.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/debug/debug_worker_subprocess.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/e2e/test_comments_and_attachments.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/e2e/test_hierarchy_validation.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/e2e/test_state_transitions.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/integration/test_aitrackdown_commenting.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/integration/test_jira_github_adapters.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/integration/test_pr_functionality.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/integration/test_serve_config.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/integration/test_user_assignment.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/performance/test_optimizations.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/performance/test_performance.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/run_comprehensive_tests.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/test_base_adapter.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/test_basic.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/test_codex_config.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/test_comprehensive_qa.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/test_error_handling.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/test_linear_teams.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/test_queue.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tests/unit/__init__.py +0 -0
- {mcp_ticketer-0.4.1 → mcp_ticketer-0.4.3}/tox.ini +0 -0
|
@@ -14,10 +14,17 @@
|
|
|
14
14
|
# Get your API key from: https://linear.app/settings/api
|
|
15
15
|
LINEAR_API_KEY=lin_api_YOUR_KEY_HERE
|
|
16
16
|
|
|
17
|
-
#
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
# Linear Team Identification - Choose ONE of the following:
|
|
18
|
+
# Option 1: Team key (recommended - short code like 'ENG', 'DESIGN', 'PRODUCT')
|
|
19
|
+
LINEAR_TEAM_KEY=ENG
|
|
20
|
+
|
|
21
|
+
# Option 2: Team UUID (for advanced use cases)
|
|
22
|
+
# LINEAR_TEAM_ID=02d15669-7351-4451-9719-807576c16049
|
|
23
|
+
|
|
24
|
+
# How to find your team key:
|
|
25
|
+
# 1. Go to Linear Settings → Teams
|
|
26
|
+
# 2. Select your team
|
|
27
|
+
# 3. Look for the "Key" field (e.g., "ENG")
|
|
21
28
|
|
|
22
29
|
# Optional: Linear project ID
|
|
23
30
|
# LINEAR_PROJECT_ID=YOUR-PROJECT-ID
|
|
@@ -4,7 +4,78 @@ All notable changes to MCP Ticketer will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
-
## [
|
|
7
|
+
## [0.4.3] - 2025-10-27
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **LINEAR_TEAM_KEY Environment Variable**: Easier Linear configuration with team keys
|
|
11
|
+
- Added `LINEAR_TEAM_KEY` support as primary configuration option
|
|
12
|
+
- Team key (e.g., "ENG", "DESIGN") now recommended over team ID (UUID)
|
|
13
|
+
- Automatic resolution of team key to team ID in Linear adapter
|
|
14
|
+
- Updated `.env.example` with LINEAR_TEAM_KEY as default option
|
|
15
|
+
- CLI `init` command now prompts for team key by default
|
|
16
|
+
- **Command Synonyms**: Init, install, and setup commands are now fully synonymous
|
|
17
|
+
- `mcp-ticketer init` - Initialize configuration
|
|
18
|
+
- `mcp-ticketer install` - Install and configure (same as init)
|
|
19
|
+
- `mcp-ticketer setup` - Setup (same as init)
|
|
20
|
+
- All three commands accept identical parameters and behave identically
|
|
21
|
+
- **Attachment Model**: Universal file attachment support
|
|
22
|
+
- New `Attachment` model in core models for cross-adapter attachment representation
|
|
23
|
+
- Fields: id, ticket_id, filename, url, content_type, size_bytes, created_at, created_by, description, metadata
|
|
24
|
+
- Full documentation in new `docs/ATTACHMENTS.md` guide
|
|
25
|
+
- **AITrackdown Attachment Support**: Complete file attachment implementation
|
|
26
|
+
- `add_attachment()` - Upload files to local filesystem with security features
|
|
27
|
+
- `get_attachments()` - List all attachments for a ticket
|
|
28
|
+
- `delete_attachment()` - Remove specific attachments
|
|
29
|
+
- Local filesystem storage in `.aitrackdown/attachments/<ticket-id>/` directories
|
|
30
|
+
- Automatic filename sanitization to prevent security issues
|
|
31
|
+
- SHA256 checksumming for file integrity verification
|
|
32
|
+
- MIME type detection based on file extension
|
|
33
|
+
- Size validation with configurable limits (default 100MB)
|
|
34
|
+
- Organized per-ticket storage structure
|
|
35
|
+
- **MCP Attachment Tools**: AI agent attachment support with fallback
|
|
36
|
+
- `ticket_attach` - Add file attachments via MCP
|
|
37
|
+
- `ticket_attachments` - List attachments via MCP
|
|
38
|
+
- `ticket_delete_attachment` - Delete attachments via MCP
|
|
39
|
+
- Automatic fallback to comments for adapters without attachment support
|
|
40
|
+
- Graceful degradation for Linear, Jira, and GitHub adapters
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
- **Linear Configuration**: LINEAR_TEAM_KEY is now the primary/recommended option
|
|
44
|
+
- Team ID (LINEAR_TEAM_ID) still supported for backward compatibility
|
|
45
|
+
- CLI init flow updated to prompt for team key first
|
|
46
|
+
- Documentation updated across README, QUICK_START, and setup guides
|
|
47
|
+
- **Environment Variable Priority**: LINEAR_TEAM_KEY takes precedence over LINEAR_TEAM_ID
|
|
48
|
+
- When both are present, LINEAR_TEAM_KEY is used
|
|
49
|
+
- Adapter automatically resolves team key to team ID via GraphQL
|
|
50
|
+
- **Documentation Structure**: New comprehensive attachment documentation
|
|
51
|
+
- Created `docs/ATTACHMENTS.md` (400+ lines)
|
|
52
|
+
- Updated README.md with attachment examples and LINEAR_TEAM_KEY info
|
|
53
|
+
- Updated QUICK_START.md with attachment usage and Linear team key setup
|
|
54
|
+
- Updated API_REFERENCE.md with complete Attachment model specification
|
|
55
|
+
- Added configuration section to README with Linear setup details
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
- **LINEAR_TEAM_KEY Environment Loading**: Proper loading from .env files
|
|
59
|
+
- Fixed `project_config.py` to check all LINEAR_* environment variables
|
|
60
|
+
- Environment variable discovery now detects LINEAR_TEAM_KEY
|
|
61
|
+
- Resolves issues where LINEAR_TEAM_KEY wasn't being recognized
|
|
62
|
+
|
|
63
|
+
### Documentation
|
|
64
|
+
- **New Files**:
|
|
65
|
+
- `docs/ATTACHMENTS.md` - Comprehensive attachment guide with examples, security notes, and roadmap
|
|
66
|
+
- **Updated Files**:
|
|
67
|
+
- `README.md` - Added attachment features, LINEAR_TEAM_KEY configuration, and command synonyms
|
|
68
|
+
- `docs/QUICK_START.md` - Added attachment examples and LINEAR_TEAM_KEY setup instructions
|
|
69
|
+
- `docs/API_REFERENCE.md` - Added Attachment model specification and adapter methods
|
|
70
|
+
- `.env.example` - Updated with LINEAR_TEAM_KEY as primary option with clear instructions
|
|
71
|
+
|
|
72
|
+
### Security
|
|
73
|
+
- **Attachment Security Features**:
|
|
74
|
+
- Filename sanitization prevents path traversal and injection attacks
|
|
75
|
+
- Path resolution validates files stay within allowed directories
|
|
76
|
+
- File size limits prevent disk exhaustion
|
|
77
|
+
- SHA256 checksums enable integrity verification
|
|
78
|
+
- Isolated per-ticket storage prevents cross-ticket access
|
|
8
79
|
|
|
9
80
|
## [0.3.6] - 2025-01-25
|
|
10
81
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-ticketer
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.3
|
|
4
4
|
Summary: Universal ticket management interface for AI agents with MCP support
|
|
5
5
|
Author-email: MCP Ticketer Team <support@mcp-ticketer.io>
|
|
6
6
|
Maintainer-email: MCP Ticketer Team <support@mcp-ticketer.io>
|
|
@@ -30,11 +30,12 @@ Classifier: Topic :: Software Development :: Bug Tracking
|
|
|
30
30
|
Classifier: Topic :: System :: Monitoring
|
|
31
31
|
Classifier: Topic :: Internet :: WWW/HTTP
|
|
32
32
|
Classifier: Typing :: Typed
|
|
33
|
-
Requires-Python: >=3.
|
|
33
|
+
Requires-Python: >=3.10
|
|
34
34
|
Description-Content-Type: text/markdown
|
|
35
35
|
License-File: LICENSE
|
|
36
36
|
Requires-Dist: gql[httpx]>=3.0.0
|
|
37
37
|
Requires-Dist: httpx>=0.25.0
|
|
38
|
+
Requires-Dist: mcp>=1.2.0
|
|
38
39
|
Requires-Dist: psutil>=5.9.0
|
|
39
40
|
Requires-Dist: pydantic>=2.0
|
|
40
41
|
Requires-Dist: python-dotenv>=1.0.0
|
|
@@ -65,7 +66,7 @@ Requires-Dist: sphinx-autodoc-typehints>=1.25.0; extra == "docs"
|
|
|
65
66
|
Requires-Dist: sphinx-click>=5.1.0; extra == "docs"
|
|
66
67
|
Requires-Dist: myst-parser>=2.0.0; extra == "docs"
|
|
67
68
|
Provides-Extra: mcp
|
|
68
|
-
Requires-Dist: mcp>=
|
|
69
|
+
Requires-Dist: mcp>=1.2.0; extra == "mcp"
|
|
69
70
|
Provides-Extra: jira
|
|
70
71
|
Requires-Dist: jira>=3.5.0; extra == "jira"
|
|
71
72
|
Requires-Dist: ai-trackdown-pytools>=1.5.0; extra == "jira"
|
|
@@ -103,6 +104,7 @@ Universal ticket management interface for AI agents with MCP (Model Context Prot
|
|
|
103
104
|
- **🎨 Rich CLI**: Beautiful terminal interface with colors and tables
|
|
104
105
|
- **📊 State Machine**: Built-in state transitions with validation
|
|
105
106
|
- **🔍 Advanced Search**: Full-text search with multiple filters
|
|
107
|
+
- **📎 File Attachments**: Upload, list, and manage ticket attachments (AITrackdown adapter)
|
|
106
108
|
- **📦 Easy Installation**: Available on PyPI with simple pip install
|
|
107
109
|
|
|
108
110
|
## 📦 Installation
|
|
@@ -138,29 +140,37 @@ MCP Ticketer integrates with multiple AI clients via the Model Context Protocol
|
|
|
138
140
|
|
|
139
141
|
| AI Client | Support | Config Type | Project-Level | Setup Command |
|
|
140
142
|
|-----------|---------|-------------|---------------|---------------|
|
|
141
|
-
| **Claude Code** | ✅ Native | JSON | ✅ Yes | `mcp-ticketer
|
|
142
|
-
| **
|
|
143
|
-
| **
|
|
144
|
-
| **
|
|
143
|
+
| **Claude Code** | ✅ Native | JSON | ✅ Yes | `mcp-ticketer install claude-code` |
|
|
144
|
+
| **Claude Desktop** | ✅ Full | JSON | ❌ Global only | `mcp-ticketer install claude-desktop` |
|
|
145
|
+
| **Gemini CLI** | ✅ Full | JSON | ✅ Yes | `mcp-ticketer install gemini` |
|
|
146
|
+
| **Codex CLI** | ✅ Full | TOML | ❌ Global only | `mcp-ticketer install codex` |
|
|
147
|
+
| **Auggie** | ✅ Full | JSON | ❌ Global only | `mcp-ticketer install auggie` |
|
|
145
148
|
|
|
146
149
|
### Quick MCP Setup
|
|
147
150
|
|
|
148
151
|
```bash
|
|
149
152
|
# Claude Code (recommended for project-specific workflows)
|
|
150
|
-
mcp-ticketer init --adapter aitrackdown
|
|
151
|
-
mcp-ticketer
|
|
153
|
+
mcp-ticketer init --adapter aitrackdown # First, initialize an adapter
|
|
154
|
+
mcp-ticketer install claude-code # Then install MCP configuration
|
|
155
|
+
|
|
156
|
+
# Claude Desktop (global configuration)
|
|
157
|
+
mcp-ticketer init --adapter aitrackdown
|
|
158
|
+
mcp-ticketer install claude-desktop
|
|
152
159
|
|
|
153
160
|
# Gemini CLI (Google's AI client)
|
|
154
161
|
mcp-ticketer init --adapter aitrackdown
|
|
155
|
-
mcp-ticketer
|
|
162
|
+
mcp-ticketer install gemini
|
|
156
163
|
|
|
157
164
|
# Codex CLI (global configuration, requires restart)
|
|
158
165
|
mcp-ticketer init --adapter aitrackdown
|
|
159
|
-
mcp-ticketer
|
|
166
|
+
mcp-ticketer install codex
|
|
160
167
|
|
|
161
168
|
# Auggie (simple global setup)
|
|
162
169
|
mcp-ticketer init --adapter aitrackdown
|
|
163
|
-
mcp-ticketer
|
|
170
|
+
mcp-ticketer install auggie
|
|
171
|
+
|
|
172
|
+
# Show available platforms
|
|
173
|
+
mcp-ticketer install
|
|
164
174
|
```
|
|
165
175
|
|
|
166
176
|
**See [AI Client Integration Guide](docs/AI_CLIENT_INTEGRATION.md) for detailed setup instructions.**
|
|
@@ -174,6 +184,10 @@ mcp-ticketer mcp auggie
|
|
|
174
184
|
mcp-ticketer init --adapter aitrackdown
|
|
175
185
|
|
|
176
186
|
# For Linear (requires API key)
|
|
187
|
+
# Option 1: Using team key (recommended)
|
|
188
|
+
mcp-ticketer init --adapter linear --team-key ENG
|
|
189
|
+
|
|
190
|
+
# Option 2: Using team ID
|
|
177
191
|
mcp-ticketer init --adapter linear --team-id YOUR_TEAM_ID
|
|
178
192
|
|
|
179
193
|
# For JIRA (requires server and credentials)
|
|
@@ -185,6 +199,11 @@ mcp-ticketer init --adapter jira \
|
|
|
185
199
|
mcp-ticketer init --adapter github --repo owner/repo
|
|
186
200
|
```
|
|
187
201
|
|
|
202
|
+
**Note:** The following commands are synonymous and can be used interchangeably:
|
|
203
|
+
- `mcp-ticketer init` - Initialize configuration
|
|
204
|
+
- `mcp-ticketer install` - Install and configure (same as init)
|
|
205
|
+
- `mcp-ticketer setup` - Setup (same as init)
|
|
206
|
+
|
|
188
207
|
### 2. Create Your First Ticket
|
|
189
208
|
|
|
190
209
|
```bash
|
|
@@ -213,6 +232,24 @@ mcp-ticketer transition TICKET-123 in_progress
|
|
|
213
232
|
mcp-ticketer search "login bug" --state open
|
|
214
233
|
```
|
|
215
234
|
|
|
235
|
+
### 4. Working with Attachments (AITrackdown)
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
# Add attachment via MCP tools
|
|
239
|
+
mcp-ticketer mcp call ticket_attach '{
|
|
240
|
+
"ticket_id": "task-123",
|
|
241
|
+
"file_path": "/path/to/document.pdf",
|
|
242
|
+
"description": "Project specification"
|
|
243
|
+
}'
|
|
244
|
+
|
|
245
|
+
# List attachments
|
|
246
|
+
mcp-ticketer mcp call ticket_attachments '{
|
|
247
|
+
"ticket_id": "task-123"
|
|
248
|
+
}'
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
For programmatic access, see the [Attachments Guide](docs/ATTACHMENTS.md).
|
|
252
|
+
|
|
216
253
|
## 🤖 MCP Server Integration
|
|
217
254
|
|
|
218
255
|
MCP Ticketer provides seamless integration with AI clients through automatic configuration:
|
|
@@ -221,11 +258,16 @@ MCP Ticketer provides seamless integration with AI clients through automatic con
|
|
|
221
258
|
# Run MCP server manually (for testing)
|
|
222
259
|
mcp-ticketer serve
|
|
223
260
|
|
|
224
|
-
# Or
|
|
225
|
-
mcp-ticketer
|
|
226
|
-
mcp-ticketer
|
|
227
|
-
mcp-ticketer
|
|
228
|
-
mcp-ticketer
|
|
261
|
+
# Or install MCP configuration automatically (recommended)
|
|
262
|
+
mcp-ticketer install claude-code # For Claude Code (project-level)
|
|
263
|
+
mcp-ticketer install claude-desktop # For Claude Desktop (global)
|
|
264
|
+
mcp-ticketer install gemini # For Gemini CLI
|
|
265
|
+
mcp-ticketer install codex # For Codex CLI
|
|
266
|
+
mcp-ticketer install auggie # For Auggie
|
|
267
|
+
|
|
268
|
+
# Remove MCP configuration when needed
|
|
269
|
+
mcp-ticketer remove claude-code # Remove from Claude Code
|
|
270
|
+
mcp-ticketer uninstall auggie # Alias for remove
|
|
229
271
|
```
|
|
230
272
|
|
|
231
273
|
**Configuration is automatic** - the commands above will:
|
|
@@ -252,6 +294,37 @@ mcp-ticketer mcp auggie # For Auggie
|
|
|
252
294
|
|
|
253
295
|
**See [AI Client Integration Guide](docs/AI_CLIENT_INTEGRATION.md) for client-specific details.**
|
|
254
296
|
|
|
297
|
+
## ⚙️ Configuration
|
|
298
|
+
|
|
299
|
+
### Linear Configuration
|
|
300
|
+
|
|
301
|
+
Configure Linear using either a team **key** (recommended) or team **ID**:
|
|
302
|
+
|
|
303
|
+
**Option 1: Team Key** (Recommended)
|
|
304
|
+
```bash
|
|
305
|
+
# In .env or environment
|
|
306
|
+
LINEAR_API_KEY=lin_api_...
|
|
307
|
+
LINEAR_TEAM_KEY=ENG
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Option 2: Team ID**
|
|
311
|
+
```bash
|
|
312
|
+
# In .env or environment
|
|
313
|
+
LINEAR_API_KEY=lin_api_...
|
|
314
|
+
LINEAR_TEAM_ID=02d15669-7351-4451-9719-807576c16049
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
**Finding your team key in Linear:**
|
|
318
|
+
1. Go to Linear Settings → Teams
|
|
319
|
+
2. Select your team
|
|
320
|
+
3. Look for the "Key" field (e.g., "ENG", "DESIGN", "PRODUCT")
|
|
321
|
+
|
|
322
|
+
The team key is a short, human-readable identifier that's easier to use than the UUID-based team ID.
|
|
323
|
+
|
|
324
|
+
### Environment Variables
|
|
325
|
+
|
|
326
|
+
See [.env.example](.env.example) for a complete list of supported environment variables for all adapters.
|
|
327
|
+
|
|
255
328
|
## 📚 Documentation
|
|
256
329
|
|
|
257
330
|
Full documentation is available at [https://mcp-ticketerer.readthedocs.io](https://mcp-ticketerer.readthedocs.io)
|
|
@@ -19,6 +19,7 @@ Universal ticket management interface for AI agents with MCP (Model Context Prot
|
|
|
19
19
|
- **🎨 Rich CLI**: Beautiful terminal interface with colors and tables
|
|
20
20
|
- **📊 State Machine**: Built-in state transitions with validation
|
|
21
21
|
- **🔍 Advanced Search**: Full-text search with multiple filters
|
|
22
|
+
- **📎 File Attachments**: Upload, list, and manage ticket attachments (AITrackdown adapter)
|
|
22
23
|
- **📦 Easy Installation**: Available on PyPI with simple pip install
|
|
23
24
|
|
|
24
25
|
## 📦 Installation
|
|
@@ -54,29 +55,37 @@ MCP Ticketer integrates with multiple AI clients via the Model Context Protocol
|
|
|
54
55
|
|
|
55
56
|
| AI Client | Support | Config Type | Project-Level | Setup Command |
|
|
56
57
|
|-----------|---------|-------------|---------------|---------------|
|
|
57
|
-
| **Claude Code** | ✅ Native | JSON | ✅ Yes | `mcp-ticketer
|
|
58
|
-
| **
|
|
59
|
-
| **
|
|
60
|
-
| **
|
|
58
|
+
| **Claude Code** | ✅ Native | JSON | ✅ Yes | `mcp-ticketer install claude-code` |
|
|
59
|
+
| **Claude Desktop** | ✅ Full | JSON | ❌ Global only | `mcp-ticketer install claude-desktop` |
|
|
60
|
+
| **Gemini CLI** | ✅ Full | JSON | ✅ Yes | `mcp-ticketer install gemini` |
|
|
61
|
+
| **Codex CLI** | ✅ Full | TOML | ❌ Global only | `mcp-ticketer install codex` |
|
|
62
|
+
| **Auggie** | ✅ Full | JSON | ❌ Global only | `mcp-ticketer install auggie` |
|
|
61
63
|
|
|
62
64
|
### Quick MCP Setup
|
|
63
65
|
|
|
64
66
|
```bash
|
|
65
67
|
# Claude Code (recommended for project-specific workflows)
|
|
66
|
-
mcp-ticketer init --adapter aitrackdown
|
|
67
|
-
mcp-ticketer
|
|
68
|
+
mcp-ticketer init --adapter aitrackdown # First, initialize an adapter
|
|
69
|
+
mcp-ticketer install claude-code # Then install MCP configuration
|
|
70
|
+
|
|
71
|
+
# Claude Desktop (global configuration)
|
|
72
|
+
mcp-ticketer init --adapter aitrackdown
|
|
73
|
+
mcp-ticketer install claude-desktop
|
|
68
74
|
|
|
69
75
|
# Gemini CLI (Google's AI client)
|
|
70
76
|
mcp-ticketer init --adapter aitrackdown
|
|
71
|
-
mcp-ticketer
|
|
77
|
+
mcp-ticketer install gemini
|
|
72
78
|
|
|
73
79
|
# Codex CLI (global configuration, requires restart)
|
|
74
80
|
mcp-ticketer init --adapter aitrackdown
|
|
75
|
-
mcp-ticketer
|
|
81
|
+
mcp-ticketer install codex
|
|
76
82
|
|
|
77
83
|
# Auggie (simple global setup)
|
|
78
84
|
mcp-ticketer init --adapter aitrackdown
|
|
79
|
-
mcp-ticketer
|
|
85
|
+
mcp-ticketer install auggie
|
|
86
|
+
|
|
87
|
+
# Show available platforms
|
|
88
|
+
mcp-ticketer install
|
|
80
89
|
```
|
|
81
90
|
|
|
82
91
|
**See [AI Client Integration Guide](docs/AI_CLIENT_INTEGRATION.md) for detailed setup instructions.**
|
|
@@ -90,6 +99,10 @@ mcp-ticketer mcp auggie
|
|
|
90
99
|
mcp-ticketer init --adapter aitrackdown
|
|
91
100
|
|
|
92
101
|
# For Linear (requires API key)
|
|
102
|
+
# Option 1: Using team key (recommended)
|
|
103
|
+
mcp-ticketer init --adapter linear --team-key ENG
|
|
104
|
+
|
|
105
|
+
# Option 2: Using team ID
|
|
93
106
|
mcp-ticketer init --adapter linear --team-id YOUR_TEAM_ID
|
|
94
107
|
|
|
95
108
|
# For JIRA (requires server and credentials)
|
|
@@ -101,6 +114,11 @@ mcp-ticketer init --adapter jira \
|
|
|
101
114
|
mcp-ticketer init --adapter github --repo owner/repo
|
|
102
115
|
```
|
|
103
116
|
|
|
117
|
+
**Note:** The following commands are synonymous and can be used interchangeably:
|
|
118
|
+
- `mcp-ticketer init` - Initialize configuration
|
|
119
|
+
- `mcp-ticketer install` - Install and configure (same as init)
|
|
120
|
+
- `mcp-ticketer setup` - Setup (same as init)
|
|
121
|
+
|
|
104
122
|
### 2. Create Your First Ticket
|
|
105
123
|
|
|
106
124
|
```bash
|
|
@@ -129,6 +147,24 @@ mcp-ticketer transition TICKET-123 in_progress
|
|
|
129
147
|
mcp-ticketer search "login bug" --state open
|
|
130
148
|
```
|
|
131
149
|
|
|
150
|
+
### 4. Working with Attachments (AITrackdown)
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
# Add attachment via MCP tools
|
|
154
|
+
mcp-ticketer mcp call ticket_attach '{
|
|
155
|
+
"ticket_id": "task-123",
|
|
156
|
+
"file_path": "/path/to/document.pdf",
|
|
157
|
+
"description": "Project specification"
|
|
158
|
+
}'
|
|
159
|
+
|
|
160
|
+
# List attachments
|
|
161
|
+
mcp-ticketer mcp call ticket_attachments '{
|
|
162
|
+
"ticket_id": "task-123"
|
|
163
|
+
}'
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
For programmatic access, see the [Attachments Guide](docs/ATTACHMENTS.md).
|
|
167
|
+
|
|
132
168
|
## 🤖 MCP Server Integration
|
|
133
169
|
|
|
134
170
|
MCP Ticketer provides seamless integration with AI clients through automatic configuration:
|
|
@@ -137,11 +173,16 @@ MCP Ticketer provides seamless integration with AI clients through automatic con
|
|
|
137
173
|
# Run MCP server manually (for testing)
|
|
138
174
|
mcp-ticketer serve
|
|
139
175
|
|
|
140
|
-
# Or
|
|
141
|
-
mcp-ticketer
|
|
142
|
-
mcp-ticketer
|
|
143
|
-
mcp-ticketer
|
|
144
|
-
mcp-ticketer
|
|
176
|
+
# Or install MCP configuration automatically (recommended)
|
|
177
|
+
mcp-ticketer install claude-code # For Claude Code (project-level)
|
|
178
|
+
mcp-ticketer install claude-desktop # For Claude Desktop (global)
|
|
179
|
+
mcp-ticketer install gemini # For Gemini CLI
|
|
180
|
+
mcp-ticketer install codex # For Codex CLI
|
|
181
|
+
mcp-ticketer install auggie # For Auggie
|
|
182
|
+
|
|
183
|
+
# Remove MCP configuration when needed
|
|
184
|
+
mcp-ticketer remove claude-code # Remove from Claude Code
|
|
185
|
+
mcp-ticketer uninstall auggie # Alias for remove
|
|
145
186
|
```
|
|
146
187
|
|
|
147
188
|
**Configuration is automatic** - the commands above will:
|
|
@@ -168,6 +209,37 @@ mcp-ticketer mcp auggie # For Auggie
|
|
|
168
209
|
|
|
169
210
|
**See [AI Client Integration Guide](docs/AI_CLIENT_INTEGRATION.md) for client-specific details.**
|
|
170
211
|
|
|
212
|
+
## ⚙️ Configuration
|
|
213
|
+
|
|
214
|
+
### Linear Configuration
|
|
215
|
+
|
|
216
|
+
Configure Linear using either a team **key** (recommended) or team **ID**:
|
|
217
|
+
|
|
218
|
+
**Option 1: Team Key** (Recommended)
|
|
219
|
+
```bash
|
|
220
|
+
# In .env or environment
|
|
221
|
+
LINEAR_API_KEY=lin_api_...
|
|
222
|
+
LINEAR_TEAM_KEY=ENG
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Option 2: Team ID**
|
|
226
|
+
```bash
|
|
227
|
+
# In .env or environment
|
|
228
|
+
LINEAR_API_KEY=lin_api_...
|
|
229
|
+
LINEAR_TEAM_ID=02d15669-7351-4451-9719-807576c16049
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**Finding your team key in Linear:**
|
|
233
|
+
1. Go to Linear Settings → Teams
|
|
234
|
+
2. Select your team
|
|
235
|
+
3. Look for the "Key" field (e.g., "ENG", "DESIGN", "PRODUCT")
|
|
236
|
+
|
|
237
|
+
The team key is a short, human-readable identifier that's easier to use than the UUID-based team ID.
|
|
238
|
+
|
|
239
|
+
### Environment Variables
|
|
240
|
+
|
|
241
|
+
See [.env.example](.env.example) for a complete list of supported environment variables for all adapters.
|
|
242
|
+
|
|
171
243
|
## 📚 Documentation
|
|
172
244
|
|
|
173
245
|
Full documentation is available at [https://mcp-ticketerer.readthedocs.io](https://mcp-ticketerer.readthedocs.io)
|
|
@@ -77,11 +77,12 @@ Before integrating with any AI client, ensure you have:
|
|
|
77
77
|
pip install mcp-ticketer
|
|
78
78
|
mcp-ticketer init --adapter aitrackdown
|
|
79
79
|
|
|
80
|
-
# 2.
|
|
81
|
-
mcp-ticketer
|
|
82
|
-
mcp-ticketer
|
|
83
|
-
mcp-ticketer
|
|
84
|
-
mcp-ticketer
|
|
80
|
+
# 2. Install MCP configuration for your AI client (choose ONE)
|
|
81
|
+
mcp-ticketer install claude-code # Claude Code (project-level, recommended)
|
|
82
|
+
mcp-ticketer install claude-desktop # Claude Desktop (global)
|
|
83
|
+
mcp-ticketer install gemini # Gemini CLI
|
|
84
|
+
mcp-ticketer install codex # Codex CLI
|
|
85
|
+
mcp-ticketer install auggie # Auggie
|
|
85
86
|
```
|
|
86
87
|
|
|
87
88
|
---
|
|
@@ -135,14 +136,14 @@ mcp-ticketer init --adapter github --repo owner/repo
|
|
|
135
136
|
#### Step 3: Configure MCP Integration
|
|
136
137
|
|
|
137
138
|
```bash
|
|
138
|
-
# Project-level configuration (recommended)
|
|
139
|
-
mcp-ticketer
|
|
139
|
+
# Project-level configuration (recommended for Claude Code)
|
|
140
|
+
mcp-ticketer install claude-code
|
|
140
141
|
|
|
141
|
-
# Global configuration (Claude Desktop)
|
|
142
|
-
mcp-ticketer
|
|
142
|
+
# Global configuration (for Claude Desktop)
|
|
143
|
+
mcp-ticketer install claude-desktop
|
|
143
144
|
|
|
144
|
-
#
|
|
145
|
-
mcp-ticketer
|
|
145
|
+
# Preview changes without applying them
|
|
146
|
+
mcp-ticketer install claude-code --dry-run
|
|
146
147
|
```
|
|
147
148
|
|
|
148
149
|
#### Step 4: Verify Configuration
|
|
@@ -274,14 +275,11 @@ mcp-ticketer init --adapter aitrackdown
|
|
|
274
275
|
#### Step 3: Configure MCP Integration
|
|
275
276
|
|
|
276
277
|
```bash
|
|
277
|
-
#
|
|
278
|
-
mcp-ticketer
|
|
278
|
+
# Install Gemini CLI configuration (project-level by default)
|
|
279
|
+
mcp-ticketer install gemini
|
|
279
280
|
|
|
280
|
-
#
|
|
281
|
-
mcp-ticketer
|
|
282
|
-
|
|
283
|
-
# Force overwrite
|
|
284
|
-
mcp-ticketer mcp gemini --scope project --force
|
|
281
|
+
# Preview changes without applying them
|
|
282
|
+
mcp-ticketer install gemini --dry-run
|
|
285
283
|
```
|
|
286
284
|
|
|
287
285
|
#### Step 4: Verify Configuration
|
|
@@ -399,11 +397,11 @@ mcp-ticketer init --adapter aitrackdown
|
|
|
399
397
|
#### Step 3: Configure MCP Integration
|
|
400
398
|
|
|
401
399
|
```bash
|
|
402
|
-
#
|
|
403
|
-
mcp-ticketer
|
|
400
|
+
# Install Codex CLI configuration (global-only)
|
|
401
|
+
mcp-ticketer install codex
|
|
404
402
|
|
|
405
|
-
#
|
|
406
|
-
mcp-ticketer
|
|
403
|
+
# Preview changes without applying them
|
|
404
|
+
mcp-ticketer install codex --dry-run
|
|
407
405
|
```
|
|
408
406
|
|
|
409
407
|
⚠️ **IMPORTANT:** Codex CLI does NOT support project-level configuration.
|
|
@@ -500,11 +498,11 @@ mcp-ticketer init --adapter aitrackdown
|
|
|
500
498
|
#### Step 3: Configure MCP Integration
|
|
501
499
|
|
|
502
500
|
```bash
|
|
503
|
-
#
|
|
504
|
-
mcp-ticketer
|
|
501
|
+
# Install Auggie configuration (global-only)
|
|
502
|
+
mcp-ticketer install auggie
|
|
505
503
|
|
|
506
|
-
#
|
|
507
|
-
mcp-ticketer
|
|
504
|
+
# Preview changes without applying them
|
|
505
|
+
mcp-ticketer install auggie --dry-run
|
|
508
506
|
```
|
|
509
507
|
|
|
510
508
|
#### Step 4: Restart Auggie
|
|
@@ -711,8 +709,9 @@ This ensures tickets are accessible across all projects when using Auggie.
|
|
|
711
709
|
# Find the binary path
|
|
712
710
|
which mcp-ticketer
|
|
713
711
|
|
|
714
|
-
#
|
|
715
|
-
mcp-ticketer
|
|
712
|
+
# Reinstall configuration
|
|
713
|
+
mcp-ticketer remove claude-code
|
|
714
|
+
mcp-ticketer install claude-code
|
|
716
715
|
```
|
|
717
716
|
|
|
718
717
|
#### 2. "Adapter not configured"
|
|
@@ -753,8 +752,9 @@ cat .gemini/settings.json
|
|
|
753
752
|
# Verify .gitignore
|
|
754
753
|
cat .gitignore | grep .gemini
|
|
755
754
|
|
|
756
|
-
#
|
|
757
|
-
mcp-ticketer
|
|
755
|
+
# Reinstall configuration
|
|
756
|
+
mcp-ticketer remove gemini
|
|
757
|
+
mcp-ticketer install gemini
|
|
758
758
|
```
|
|
759
759
|
|
|
760
760
|
#### 5. "Server not responding" (Codex CLI)
|
|
@@ -817,8 +817,8 @@ python -c "import tomli; print(tomli.load(open('~/.codex/config.toml', 'rb')))"
|
|
|
817
817
|
# 1. Your adapter config is already compatible
|
|
818
818
|
# No changes needed to .mcp-ticketer/config.json
|
|
819
819
|
|
|
820
|
-
# 2.
|
|
821
|
-
mcp-ticketer
|
|
820
|
+
# 2. Install Gemini CLI configuration
|
|
821
|
+
mcp-ticketer install gemini
|
|
822
822
|
|
|
823
823
|
# 3. Both clients can now use the same adapter
|
|
824
824
|
# No data migration required
|
|
@@ -831,8 +831,8 @@ mcp-ticketer mcp gemini --scope project
|
|
|
831
831
|
cd /path/to/project
|
|
832
832
|
mcp-ticketer init --adapter aitrackdown
|
|
833
833
|
|
|
834
|
-
# 2.
|
|
835
|
-
mcp-ticketer
|
|
834
|
+
# 2. Install configuration for new client
|
|
835
|
+
mcp-ticketer install claude-code # or: mcp-ticketer install gemini
|
|
836
836
|
|
|
837
837
|
# 3. Migrate tickets (optional)
|
|
838
838
|
# Copy tickets from global storage to project storage
|
|
@@ -846,8 +846,8 @@ cp -r ~/.mcp-ticketer/.aitrackdown/* .aitrackdown/
|
|
|
846
846
|
mkdir -p ~/.mcp-ticketer
|
|
847
847
|
cp .mcp-ticketer/config.json ~/.mcp-ticketer/
|
|
848
848
|
|
|
849
|
-
# 2.
|
|
850
|
-
mcp-ticketer
|
|
849
|
+
# 2. Install configuration for global client
|
|
850
|
+
mcp-ticketer install codex # or: mcp-ticketer install auggie
|
|
851
851
|
|
|
852
852
|
# 3. Update paths in global config
|
|
853
853
|
# Edit ~/.codex/config.toml or ~/.augment/settings.json
|
|
@@ -888,7 +888,8 @@ MCP_TICKETER_ADAPTER = "aitrackdown"
|
|
|
888
888
|
**Conversion script:**
|
|
889
889
|
```bash
|
|
890
890
|
# Use mcp-ticketer's built-in conversion
|
|
891
|
-
mcp-ticketer
|
|
891
|
+
mcp-ticketer remove codex
|
|
892
|
+
mcp-ticketer install codex
|
|
892
893
|
```
|
|
893
894
|
|
|
894
895
|
---
|