quickcall-integrations 0.3.1__py3-none-any.whl → 0.3.3__py3-none-any.whl

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.
@@ -164,10 +164,8 @@ def create_github_tools(mcp: FastMCP) -> None:
164
164
  List pull requests for a GitHub repository.
165
165
 
166
166
  Returns PRs sorted by last updated.
167
- Requires QuickCall authentication with GitHub connected.
168
-
169
- Use detail_level='summary' (default) to avoid context overflow with large result sets.
170
- Use get_pr(number) to get full details for specific PRs when needed.
167
+ Use detail_level='summary' (default) to avoid context overflow.
168
+ Use get_prs() to fetch full details for specific PRs.
171
169
  """
172
170
  try:
173
171
  client = _get_client()
@@ -286,10 +284,8 @@ def create_github_tools(mcp: FastMCP) -> None:
286
284
  List commits for a GitHub repository.
287
285
 
288
286
  Returns commits sorted by date (newest first).
289
- Requires QuickCall authentication with GitHub connected.
290
-
291
- Use detail_level='summary' (default) to avoid context overflow with large result sets.
292
- Use get_commit(sha) to get full details for specific commits when needed.
287
+ Use detail_level='summary' (default) to avoid context overflow.
288
+ Use get_commit(sha) for full details on a specific commit.
293
289
  """
294
290
  try:
295
291
  client = _get_client()
@@ -393,84 +389,6 @@ def create_github_tools(mcp: FastMCP) -> None:
393
389
  except Exception as e:
394
390
  raise ToolError(f"Failed to list branches: {str(e)}")
395
391
 
396
- @mcp.tool(tags={"github", "prs"})
397
- def search_merged_prs(
398
- author: Optional[str] = Field(
399
- default=None,
400
- description="GitHub username to filter by. Defaults to authenticated user if not specified.",
401
- ),
402
- days: int = Field(
403
- default=180,
404
- description="Number of days to look back (default: 180 for ~6 months)",
405
- ),
406
- org: Optional[str] = Field(
407
- default=None,
408
- description="GitHub org to search within. If not specified, searches all accessible repos.",
409
- ),
410
- repo: Optional[str] = Field(
411
- default=None,
412
- description="Specific repo in 'owner/repo' format (e.g., 'revolving-org/supabase'). Overrides org if specified.",
413
- ),
414
- limit: int = Field(
415
- default=100,
416
- description="Maximum PRs to return (default: 100)",
417
- ),
418
- detail_level: str = Field(
419
- default="summary",
420
- description="'summary' for minimal fields (number, title, merged_at, repo, owner, html_url, author), "
421
- "'full' adds body and labels. Use 'summary' for large result sets.",
422
- ),
423
- ) -> dict:
424
- """
425
- Search for merged pull requests by author within a time period.
426
-
427
- NOTE: For appraisals/performance reviews, use prepare_appraisal_data instead!
428
- It fetches all PRs with full stats in parallel and avoids context overflow.
429
-
430
- This tool returns basic PR info without stats (additions, deletions).
431
- Use detail_level='summary' (default) for large result sets.
432
-
433
- Requires QuickCall authentication with GitHub connected.
434
- """
435
- try:
436
- client = _get_client()
437
-
438
- # Calculate since_date from days
439
- from datetime import datetime, timedelta, timezone
440
-
441
- since_date = (datetime.now(timezone.utc) - timedelta(days=days)).strftime(
442
- "%Y-%m-%d"
443
- )
444
-
445
- # Use authenticated user if author not specified
446
- if not author:
447
- creds = get_credential_store().get_api_credentials()
448
- if creds and creds.github_username:
449
- author = creds.github_username
450
-
451
- prs = client.search_merged_prs(
452
- author=author,
453
- since_date=since_date,
454
- org=org,
455
- repo=repo,
456
- limit=limit,
457
- detail_level=detail_level,
458
- )
459
-
460
- return {
461
- "count": len(prs),
462
- "detail_level": detail_level,
463
- "period": f"Last {days} days",
464
- "author": author,
465
- "org": org,
466
- "repo": repo,
467
- "prs": prs,
468
- }
469
- except ToolError:
470
- raise
471
- except Exception as e:
472
- raise ToolError(f"Failed to search merged PRs: {str(e)}")
473
-
474
392
  @mcp.tool(tags={"github", "prs", "appraisal"})
475
393
  def prepare_appraisal_data(
476
394
  author: Optional[str] = Field(
@@ -491,18 +409,17 @@ def create_github_tools(mcp: FastMCP) -> None:
491
409
  ),
492
410
  ) -> dict:
493
411
  """
494
- Prepare appraisal data by fetching ALL merged PRs with full details.
495
-
496
- USE THIS TOOL FOR APPRAISALS AND PERFORMANCE REVIEWS!
412
+ Fetch all merged PRs for appraisals/performance reviews.
497
413
 
498
- This is the recommended tool for gathering contribution data because it:
499
- 1. Fetches ALL merged PRs with full stats (additions, deletions) in PARALLEL
500
- 2. Dumps everything to a local file (avoids context overflow)
501
- 3. Returns just PR titles for you to review
502
- 4. Then use get_appraisal_pr_details(file_path, pr_numbers) for selected PRs
414
+ Returns:
415
+ - file_path: temp file with full PR data (additions, deletions, files)
416
+ - pr_titles: list of {number, title, repo} for Claude to review
417
+ - count: total PRs found
503
418
 
504
- DO NOT use search_merged_prs for appraisals - it doesn't include stats
505
- and causes context overflow with large result sets.
419
+ Workflow:
420
+ 1. Call this tool get file_path and pr_titles
421
+ 2. Review pr_titles, pick significant PRs
422
+ 3. Call get_appraisal_pr_details(file_path, [pr_numbers]) for full details
506
423
  """
507
424
  import json
508
425
  import tempfile
@@ -611,13 +528,12 @@ def create_github_tools(mcp: FastMCP) -> None:
611
528
  ),
612
529
  ) -> dict:
613
530
  """
614
- Get full PR details from the appraisal data dump.
531
+ Read full PR details from the appraisal data file.
615
532
 
616
- This reads from the local file created by prepare_appraisal_data.
617
- NO API CALLS are made - all data comes from the cached dump.
533
+ Call this after prepare_appraisal_data with selected PR numbers.
534
+ Reads from the cached file - no API calls made.
618
535
 
619
- Use this after prepare_appraisal_data to get full details for specific PRs
620
- that Claude has identified as important for the appraisal.
536
+ Returns: additions, deletions, files changed, body for selected PRs.
621
537
  """
622
538
  import json
623
539
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quickcall-integrations
3
- Version: 0.3.1
3
+ Version: 0.3.3
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
@@ -11,10 +11,10 @@ mcp_server/resources/slack_resources.py,sha256=b_CPxAicwkF3PsBXIat4QoLbDUHM2g_iP
11
11
  mcp_server/tools/__init__.py,sha256=vIR2ujAaTXm2DgpTsVNz3brI4G34p-Jeg44Qe0uvWc0,405
12
12
  mcp_server/tools/auth_tools.py,sha256=kCPjPC1jrVz0XaRAwPea-ue8ybjLLTxyILplBDJ9Mv4,24477
13
13
  mcp_server/tools/git_tools.py,sha256=jyCTQR2eSzUFXMt0Y8x66758-VY8YCY14DDUJt7GY2U,13957
14
- mcp_server/tools/github_tools.py,sha256=Dcwhok30dpEePlm77--ynnQmkEmQkG_X625076n3F3A,25900
14
+ mcp_server/tools/github_tools.py,sha256=HEp0YoihI3te4l-6bWb-trtQySuCo73-2ZWLc70Of6Y,22531
15
15
  mcp_server/tools/slack_tools.py,sha256=-HVE_x3Z1KMeYGi1xhyppEwz5ZF-I-ZD0-Up8yBeoYE,11796
16
16
  mcp_server/tools/utility_tools.py,sha256=1WiOpJivu6Ug9OLajm77lzsmFfBPgWHs8e1hNCEX_Aw,3359
17
- quickcall_integrations-0.3.1.dist-info/METADATA,sha256=_HB-u8R1Wr9qk4sAB9YefLDElDUKYEvavYrNO1V4YY0,7043
18
- quickcall_integrations-0.3.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
19
- quickcall_integrations-0.3.1.dist-info/entry_points.txt,sha256=kkcunmJUzncYvQ1rOR35V2LPm2HcFTKzdI2l3n7NwiM,66
20
- quickcall_integrations-0.3.1.dist-info/RECORD,,
17
+ quickcall_integrations-0.3.3.dist-info/METADATA,sha256=fd1nVZVj0hMuDBgCERVn-DQxkWv43Yr3otNZ2oJQ4PE,7043
18
+ quickcall_integrations-0.3.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
19
+ quickcall_integrations-0.3.3.dist-info/entry_points.txt,sha256=kkcunmJUzncYvQ1rOR35V2LPm2HcFTKzdI2l3n7NwiM,66
20
+ quickcall_integrations-0.3.3.dist-info/RECORD,,