quickcall-integrations 0.1.7__tar.gz → 0.2.0__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.
Files changed (40) hide show
  1. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/.gitignore +3 -0
  2. quickcall_integrations-0.2.0/.pre-commit-config.yaml +18 -0
  3. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/PKG-INFO +82 -67
  4. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/README.md +81 -66
  5. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/__init__.py +1 -1
  6. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/api_clients/github_client.py +220 -62
  7. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/auth/__init__.py +8 -0
  8. quickcall_integrations-0.2.0/mcp_server/auth/credentials.py +586 -0
  9. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/tools/auth_tools.py +194 -27
  10. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/tools/git_tools.py +174 -0
  11. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/tools/github_tools.py +215 -48
  12. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/plugins/quickcall/.claude-plugin/plugin.json +2 -2
  13. quickcall_integrations-0.2.0/plugins/quickcall/commands/appraisal.md +128 -0
  14. quickcall_integrations-0.2.0/plugins/quickcall/commands/connect-github-pat.md +43 -0
  15. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/pyproject.toml +1 -1
  16. quickcall_integrations-0.2.0/tests/appraisal/__init__.py +1 -0
  17. quickcall_integrations-0.2.0/tests/appraisal/setup_test_data.py +461 -0
  18. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/uv.lock +1 -1
  19. quickcall_integrations-0.1.7/mcp_server/auth/credentials.py +0 -278
  20. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/.claude-plugin/marketplace.json +0 -0
  21. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/.github/workflows/publish-pypi.yml +0 -0
  22. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/Dockerfile +0 -0
  23. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/assets/logo.png +0 -0
  24. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/api_clients/__init__.py +0 -0
  25. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/api_clients/slack_client.py +0 -0
  26. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/auth/device_flow.py +0 -0
  27. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/resources/__init__.py +0 -0
  28. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/resources/slack_resources.py +0 -0
  29. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/server.py +0 -0
  30. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/tools/__init__.py +0 -0
  31. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/tools/slack_tools.py +0 -0
  32. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/mcp_server/tools/utility_tools.py +0 -0
  33. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/plugins/quickcall/commands/connect.md +0 -0
  34. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/plugins/quickcall/commands/slack-summary.md +0 -0
  35. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/plugins/quickcall/commands/status.md +0 -0
  36. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/plugins/quickcall/commands/updates.md +0 -0
  37. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/requirements.txt +0 -0
  38. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/tests/README.md +0 -0
  39. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/tests/test_integrations.py +0 -0
  40. {quickcall_integrations-0.1.7 → quickcall_integrations-0.2.0}/tests/test_tools.py +0 -0
@@ -2,12 +2,15 @@ internal-docs/
2
2
 
3
3
  # Local MCP config (for dev testing - not committed)
4
4
  .mcp.json
5
+ localtest.mcp.json
5
6
 
6
7
  # Secrets and environment
7
8
  secrets/
8
9
  *.env
9
10
  *.env.*
10
11
  *.pem
12
+ .quickcall.env
13
+ quickcall.env
11
14
  mcp-inspector-config.json
12
15
 
13
16
  # Byte-compiled / optimized / DLL files
@@ -0,0 +1,18 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v5.0.0
4
+ hooks:
5
+ - id: trailing-whitespace
6
+ - id: end-of-file-fixer
7
+ - id: check-yaml
8
+ - id: check-json
9
+ - id: check-added-large-files
10
+ args: ['--maxkb=1000']
11
+ - id: check-merge-conflict
12
+
13
+ - repo: https://github.com/astral-sh/ruff-pre-commit
14
+ rev: v0.9.9
15
+ hooks:
16
+ - id: ruff
17
+ args: [--fix, --exit-non-zero-on-fix]
18
+ - id: ruff-format
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quickcall-integrations
3
- Version: 0.1.7
3
+ Version: 0.2.0
4
4
  Summary: MCP server with developer integrations for Claude Code and Cursor
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: fastmcp>=2.13.0
@@ -26,8 +26,9 @@ Description-Content-Type: text/markdown
26
26
  </p>
27
27
 
28
28
  <p align="center">
29
- <a href="#integrations">Integrations</a> |
30
29
  <a href="#install">Install</a> |
30
+ <a href="#capabilities">Capabilities</a> |
31
+ <a href="#integrations">Integrations</a> |
31
32
  <a href="#authentication">Authentication</a> |
32
33
  <a href="#commands">Commands</a> |
33
34
  <a href="#troubleshooting">Troubleshooting</a>
@@ -35,12 +36,49 @@ Description-Content-Type: text/markdown
35
36
 
36
37
  ---
37
38
 
39
+ ## Install
40
+
41
+ ### Claude Code
42
+
43
+ **In your terminal:**
44
+ ```bash
45
+ claude mcp add quickcall -- uvx quickcall-integrations
46
+ ```
47
+
48
+ **In Claude Code:**
49
+ ```
50
+ /plugin marketplace add quickcall-dev/quickcall-integrations
51
+ ```
52
+ ```
53
+ /plugin enable quickcall
54
+ ```
55
+
56
+ **Restart Claude Code**, then verify with `/mcp` and `/plugin list`.
57
+
58
+ ### Cursor / Other IDEs
59
+
60
+ Add to MCP config (`~/.cursor/mcp.json` or `.cursor/mcp.json`):
61
+
62
+ ```json
63
+ {
64
+ "mcpServers": {
65
+ "quickcall": {
66
+ "command": "uvx",
67
+ "args": ["quickcall-integrations"]
68
+ }
69
+ }
70
+ }
71
+ ```
72
+
73
+ > Works with any IDE that supports MCP servers.
74
+
38
75
  ## Capabilities
39
76
 
40
77
  - **Get standup updates** from git history (commits, diffs, stats)
41
78
  - **List PRs, commits, branches** from GitHub repos
42
- - **Send messages to Slack** channels
43
- - **Check connection status** for all integrations
79
+ - **Read & send Slack messages** with auto thread fetching
80
+ - **Fuzzy channel matching** - say "no sleep dev" and it finds "no-sleep-dev-channel"
81
+ - **Summarize Slack channels** - get key discussions from last N days
44
82
 
45
83
  ## Integrations
46
84
 
@@ -51,7 +89,7 @@ Description-Content-Type: text/markdown
51
89
  | **Slack** | Read/send messages, threads, channels | Yes |
52
90
 
53
91
  <details>
54
- <summary><strong>Available Tools (22)</strong></summary>
92
+ <summary><strong>Available Tools (23)</strong></summary>
55
93
 
56
94
  ### Git
57
95
  | Tool | Description |
@@ -74,10 +112,11 @@ Description-Content-Type: text/markdown
74
112
  |------|-------------|
75
113
  | `list_slack_channels` | List channels bot has access to |
76
114
  | `send_slack_message` | Send message to a channel |
77
- | `read_slack_messages` | Read messages from a channel (with date filter) |
115
+ | `read_slack_messages` | Read messages with threads auto-fetched |
78
116
  | `read_slack_thread` | Read replies in a thread |
79
117
  | `list_slack_users` | List workspace users |
80
118
  | `check_slack_connection` | Verify Slack connection |
119
+ | `reconnect_slack` | Re-authorize to get new permissions |
81
120
 
82
121
  ### Auth
83
122
  | Tool | Description |
@@ -97,56 +136,10 @@ Description-Content-Type: text/markdown
97
136
 
98
137
  </details>
99
138
 
100
- ## Install
101
-
102
- ### Claude Code
103
-
104
- ```
105
- /plugin marketplace add quickcall-dev/quickcall-integrations
106
- /plugin install quickcall@quickcall-integrations
107
- ```
108
-
109
- <details>
110
- <summary>MCP only (without plugin)</summary>
111
-
112
- ```bash
113
- claude mcp add quickcall -- uvx quickcall-integrations
114
- ```
115
- </details>
116
-
117
- <details>
118
- <summary>Update to latest version</summary>
119
-
120
- ```
121
- /plugin marketplace update quickcall-integrations
122
- /plugin uninstall quickcall
123
- /plugin install quickcall@quickcall-integrations
124
- ```
125
-
126
- After updating, restart Claude Code or open a new terminal.
127
- </details>
128
-
129
- ### Cursor
130
-
131
- Add to your Cursor MCP config (`~/.cursor/mcp.json` for global, or `.cursor/mcp.json` for project):
132
-
133
- ```json
134
- {
135
- "mcpServers": {
136
- "quickcall": {
137
- "command": "uvx",
138
- "args": ["quickcall-integrations"]
139
- }
140
- }
141
- }
142
- ```
143
-
144
- Then restart Cursor.
145
-
146
- > Also works with [Antigravity](https://antigravity.dev) and any other IDE that supports MCP servers.
147
-
148
139
  ## Authentication
149
140
 
141
+ ### Option 1: QuickCall (Recommended)
142
+
150
143
  To use GitHub and Slack integrations, connect your QuickCall account:
151
144
 
152
145
  ```
@@ -160,6 +153,30 @@ This will guide you through:
160
153
 
161
154
  Credentials are stored locally in `~/.quickcall/credentials.json`.
162
155
 
156
+ ### Option 2: GitHub PAT (For Enterprise Users)
157
+
158
+ If your organization can't install the QuickCall GitHub App (common at enterprises with strict app policies), you can use a Personal Access Token instead:
159
+
160
+ **Environment Variable:**
161
+ ```bash
162
+ export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx
163
+ ```
164
+
165
+ **Or config file** (create `.quickcall.env` in your project root or home directory):
166
+ ```bash
167
+ # .quickcall.env
168
+ GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx
169
+ GITHUB_USERNAME=your-username # Optional: for better UX
170
+ ```
171
+
172
+ **Create a PAT at:** https://github.com/settings/tokens
173
+
174
+ **Required scopes:**
175
+ - `repo` - Full access to private repositories
176
+ - `public_repo` - Access to public repositories only (if you don't need private repos)
177
+
178
+ **Note:** PAT mode provides access to GitHub tools only. For Slack integration, use QuickCall authentication.
179
+
163
180
  ## Commands
164
181
 
165
182
  ### Claude Code
@@ -170,6 +187,8 @@ Credentials are stored locally in `~/.quickcall/credentials.json`.
170
187
  | `/quickcall:status` | Show connection status |
171
188
  | `/quickcall:updates` | Get git updates (default: 1 day) |
172
189
  | `/quickcall:updates 7d` | Get updates for last 7 days |
190
+ | `/quickcall:slack-summary` | Summarize Slack messages (default: 1 day) |
191
+ | `/quickcall:slack-summary 7d` | Summarize last 7 days |
173
192
 
174
193
  ### Cursor / Other IDEs
175
194
 
@@ -196,8 +215,9 @@ List branches on [repo-name]
196
215
  ### Slack
197
216
  ```
198
217
  Send "Build completed" to #deployments
199
- What messages were posted in #general today?
200
- Show me the thread replies for that message
218
+ What messages were posted in dev channel today?
219
+ Read messages from no sleep dev (fuzzy matches "no-sleep-dev-channel")
220
+ Summarize what was discussed in #engineering this week
201
221
  List channels I have access to
202
222
  ```
203
223
 
@@ -209,27 +229,22 @@ What did I work on this week? Send summary to #standup
209
229
 
210
230
  ## Troubleshooting
211
231
 
212
- ### Plugin Not Updating?
232
+ ### Clean Reinstall
213
233
 
214
- If new commands don't appear after updating, clear the cache:
234
+ If commands don't appear or aren't updating:
215
235
 
216
236
  ```bash
237
+ # Remove everything
217
238
  rm -rf ~/.claude/plugins/cache/quickcall-integrations
218
239
  rm -rf ~/.claude/plugins/marketplaces/quickcall-integrations
240
+ claude mcp remove quickcall
219
241
  ```
220
242
 
221
- Then restart Claude Code and reinstall:
222
-
223
- ```
224
- /plugin marketplace add quickcall-dev/quickcall-integrations
225
- /plugin install quickcall@quickcall-integrations
226
- ```
243
+ Then follow the [install steps](#claude-code) again.
227
244
 
228
245
  ### Commands Not Showing?
229
246
 
230
- Type `/quickcall:` - you should see `connect`, `status`, `updates`.
231
-
232
- If only `updates` shows, run the cleanup above and reinstall.
247
+ Type `/quickcall:` - you should see `connect`, `status`, `updates`. If not, do a clean reinstall above.
233
248
 
234
249
  ---
235
250
 
@@ -14,8 +14,9 @@
14
14
  </p>
15
15
 
16
16
  <p align="center">
17
- <a href="#integrations">Integrations</a> |
18
17
  <a href="#install">Install</a> |
18
+ <a href="#capabilities">Capabilities</a> |
19
+ <a href="#integrations">Integrations</a> |
19
20
  <a href="#authentication">Authentication</a> |
20
21
  <a href="#commands">Commands</a> |
21
22
  <a href="#troubleshooting">Troubleshooting</a>
@@ -23,12 +24,49 @@
23
24
 
24
25
  ---
25
26
 
27
+ ## Install
28
+
29
+ ### Claude Code
30
+
31
+ **In your terminal:**
32
+ ```bash
33
+ claude mcp add quickcall -- uvx quickcall-integrations
34
+ ```
35
+
36
+ **In Claude Code:**
37
+ ```
38
+ /plugin marketplace add quickcall-dev/quickcall-integrations
39
+ ```
40
+ ```
41
+ /plugin enable quickcall
42
+ ```
43
+
44
+ **Restart Claude Code**, then verify with `/mcp` and `/plugin list`.
45
+
46
+ ### Cursor / Other IDEs
47
+
48
+ Add to MCP config (`~/.cursor/mcp.json` or `.cursor/mcp.json`):
49
+
50
+ ```json
51
+ {
52
+ "mcpServers": {
53
+ "quickcall": {
54
+ "command": "uvx",
55
+ "args": ["quickcall-integrations"]
56
+ }
57
+ }
58
+ }
59
+ ```
60
+
61
+ > Works with any IDE that supports MCP servers.
62
+
26
63
  ## Capabilities
27
64
 
28
65
  - **Get standup updates** from git history (commits, diffs, stats)
29
66
  - **List PRs, commits, branches** from GitHub repos
30
- - **Send messages to Slack** channels
31
- - **Check connection status** for all integrations
67
+ - **Read & send Slack messages** with auto thread fetching
68
+ - **Fuzzy channel matching** - say "no sleep dev" and it finds "no-sleep-dev-channel"
69
+ - **Summarize Slack channels** - get key discussions from last N days
32
70
 
33
71
  ## Integrations
34
72
 
@@ -39,7 +77,7 @@
39
77
  | **Slack** | Read/send messages, threads, channels | Yes |
40
78
 
41
79
  <details>
42
- <summary><strong>Available Tools (22)</strong></summary>
80
+ <summary><strong>Available Tools (23)</strong></summary>
43
81
 
44
82
  ### Git
45
83
  | Tool | Description |
@@ -62,10 +100,11 @@
62
100
  |------|-------------|
63
101
  | `list_slack_channels` | List channels bot has access to |
64
102
  | `send_slack_message` | Send message to a channel |
65
- | `read_slack_messages` | Read messages from a channel (with date filter) |
103
+ | `read_slack_messages` | Read messages with threads auto-fetched |
66
104
  | `read_slack_thread` | Read replies in a thread |
67
105
  | `list_slack_users` | List workspace users |
68
106
  | `check_slack_connection` | Verify Slack connection |
107
+ | `reconnect_slack` | Re-authorize to get new permissions |
69
108
 
70
109
  ### Auth
71
110
  | Tool | Description |
@@ -85,56 +124,10 @@
85
124
 
86
125
  </details>
87
126
 
88
- ## Install
89
-
90
- ### Claude Code
91
-
92
- ```
93
- /plugin marketplace add quickcall-dev/quickcall-integrations
94
- /plugin install quickcall@quickcall-integrations
95
- ```
96
-
97
- <details>
98
- <summary>MCP only (without plugin)</summary>
99
-
100
- ```bash
101
- claude mcp add quickcall -- uvx quickcall-integrations
102
- ```
103
- </details>
104
-
105
- <details>
106
- <summary>Update to latest version</summary>
107
-
108
- ```
109
- /plugin marketplace update quickcall-integrations
110
- /plugin uninstall quickcall
111
- /plugin install quickcall@quickcall-integrations
112
- ```
113
-
114
- After updating, restart Claude Code or open a new terminal.
115
- </details>
116
-
117
- ### Cursor
118
-
119
- Add to your Cursor MCP config (`~/.cursor/mcp.json` for global, or `.cursor/mcp.json` for project):
120
-
121
- ```json
122
- {
123
- "mcpServers": {
124
- "quickcall": {
125
- "command": "uvx",
126
- "args": ["quickcall-integrations"]
127
- }
128
- }
129
- }
130
- ```
131
-
132
- Then restart Cursor.
133
-
134
- > Also works with [Antigravity](https://antigravity.dev) and any other IDE that supports MCP servers.
135
-
136
127
  ## Authentication
137
128
 
129
+ ### Option 1: QuickCall (Recommended)
130
+
138
131
  To use GitHub and Slack integrations, connect your QuickCall account:
139
132
 
140
133
  ```
@@ -148,6 +141,30 @@ This will guide you through:
148
141
 
149
142
  Credentials are stored locally in `~/.quickcall/credentials.json`.
150
143
 
144
+ ### Option 2: GitHub PAT (For Enterprise Users)
145
+
146
+ If your organization can't install the QuickCall GitHub App (common at enterprises with strict app policies), you can use a Personal Access Token instead:
147
+
148
+ **Environment Variable:**
149
+ ```bash
150
+ export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx
151
+ ```
152
+
153
+ **Or config file** (create `.quickcall.env` in your project root or home directory):
154
+ ```bash
155
+ # .quickcall.env
156
+ GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx
157
+ GITHUB_USERNAME=your-username # Optional: for better UX
158
+ ```
159
+
160
+ **Create a PAT at:** https://github.com/settings/tokens
161
+
162
+ **Required scopes:**
163
+ - `repo` - Full access to private repositories
164
+ - `public_repo` - Access to public repositories only (if you don't need private repos)
165
+
166
+ **Note:** PAT mode provides access to GitHub tools only. For Slack integration, use QuickCall authentication.
167
+
151
168
  ## Commands
152
169
 
153
170
  ### Claude Code
@@ -158,6 +175,8 @@ Credentials are stored locally in `~/.quickcall/credentials.json`.
158
175
  | `/quickcall:status` | Show connection status |
159
176
  | `/quickcall:updates` | Get git updates (default: 1 day) |
160
177
  | `/quickcall:updates 7d` | Get updates for last 7 days |
178
+ | `/quickcall:slack-summary` | Summarize Slack messages (default: 1 day) |
179
+ | `/quickcall:slack-summary 7d` | Summarize last 7 days |
161
180
 
162
181
  ### Cursor / Other IDEs
163
182
 
@@ -184,8 +203,9 @@ List branches on [repo-name]
184
203
  ### Slack
185
204
  ```
186
205
  Send "Build completed" to #deployments
187
- What messages were posted in #general today?
188
- Show me the thread replies for that message
206
+ What messages were posted in dev channel today?
207
+ Read messages from no sleep dev (fuzzy matches "no-sleep-dev-channel")
208
+ Summarize what was discussed in #engineering this week
189
209
  List channels I have access to
190
210
  ```
191
211
 
@@ -197,27 +217,22 @@ What did I work on this week? Send summary to #standup
197
217
 
198
218
  ## Troubleshooting
199
219
 
200
- ### Plugin Not Updating?
220
+ ### Clean Reinstall
201
221
 
202
- If new commands don't appear after updating, clear the cache:
222
+ If commands don't appear or aren't updating:
203
223
 
204
224
  ```bash
225
+ # Remove everything
205
226
  rm -rf ~/.claude/plugins/cache/quickcall-integrations
206
227
  rm -rf ~/.claude/plugins/marketplaces/quickcall-integrations
228
+ claude mcp remove quickcall
207
229
  ```
208
230
 
209
- Then restart Claude Code and reinstall:
210
-
211
- ```
212
- /plugin marketplace add quickcall-dev/quickcall-integrations
213
- /plugin install quickcall@quickcall-integrations
214
- ```
231
+ Then follow the [install steps](#claude-code) again.
215
232
 
216
233
  ### Commands Not Showing?
217
234
 
218
- Type `/quickcall:` - you should see `connect`, `status`, `updates`.
219
-
220
- If only `updates` shows, run the cleanup above and reinstall.
235
+ Type `/quickcall:` - you should see `connect`, `status`, `updates`. If not, do a clean reinstall above.
221
236
 
222
237
  ---
223
238
 
@@ -3,4 +3,4 @@ MCP Server for QuickCall
3
3
  GitHub integration tools for AI assistant
4
4
  """
5
5
 
6
- __version__ = "0.1.7"
6
+ __version__ = "0.1.8"