callrail-mcp 1.0.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.
@@ -0,0 +1,2 @@
1
+ # All files require review by Steve Japalucci
2
+ * @pghdma
@@ -0,0 +1,2 @@
1
+ github: [pghdma]
2
+ custom: ["https://pghdma.com"]
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: Bug report
3
+ about: Something isn't working as documented
4
+ title: "[Bug] "
5
+ labels: bug
6
+ assignees: ''
7
+ ---
8
+
9
+ ## Description
10
+
11
+ A clear and concise description of what the bug is.
12
+
13
+ ## To reproduce
14
+
15
+ Minimal steps. If possible, paste the tool invocation or Python snippet.
16
+
17
+ ## Expected behavior
18
+
19
+ What you thought would happen.
20
+
21
+ ## Actual behavior
22
+
23
+ What actually happened. Include error output if any — **redact your API key**.
24
+
25
+ ## Environment
26
+
27
+ - `callrail-mcp` version:
28
+ - Python version:
29
+ - MCP client (Claude Code / Desktop / Cursor / other) + version:
30
+ - OS:
31
+
32
+ ## Additional context
33
+
34
+ Anything else relevant — related issues, docs you followed, etc.
@@ -0,0 +1,8 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Security vulnerability
4
+ url: https://github.com/pghdma/callrail-mcp/security/policy
5
+ about: Please report security issues privately via SECURITY.md, not as a public issue.
6
+ - name: Questions & general discussion
7
+ url: https://github.com/pghdma/callrail-mcp/discussions
8
+ about: Ask questions or share how you're using the project.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest a new tool or capability
4
+ title: "[Feature] "
5
+ labels: enhancement
6
+ assignees: ''
7
+ ---
8
+
9
+ ## Use case
10
+
11
+ What are you trying to do with your MCP client (Claude, Cursor, etc.)? Describe the real workflow — e.g. *"I want to ask Claude to list all missed calls from Google Ads that lasted under 10 seconds so we can flag ad-copy misfires."*
12
+
13
+ ## Proposed tool / API surface
14
+
15
+ If you have a specific tool signature in mind, sketch it:
16
+
17
+ ```python
18
+ @mcp.tool()
19
+ def new_tool(arg: str, ...) -> str:
20
+ """What it does."""
21
+ ```
22
+
23
+ Or describe the CallRail API endpoint you'd like wrapped (see <https://apidocs.callrail.com/>).
24
+
25
+ ## Alternatives considered
26
+
27
+ What workarounds exist today? What's wrong with them?
28
+
29
+ ## Additional context
30
+
31
+ Links, screenshots, related issues.
@@ -0,0 +1,16 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: pip
4
+ directory: "/"
5
+ schedule:
6
+ interval: weekly
7
+ open-pull-requests-limit: 5
8
+ commit-message:
9
+ prefix: "chore(deps)"
10
+
11
+ - package-ecosystem: github-actions
12
+ directory: "/"
13
+ schedule:
14
+ interval: monthly
15
+ commit-message:
16
+ prefix: "chore(ci)"
@@ -0,0 +1,33 @@
1
+ # Pull request
2
+
3
+ ## Summary
4
+
5
+ What does this PR change? Keep it tight — one-liner is best.
6
+
7
+ ## Related issue(s)
8
+
9
+ Closes #
10
+
11
+ ## Changes
12
+
13
+ - [ ] ...
14
+ - [ ] ...
15
+
16
+ ## Test plan
17
+
18
+ How did you verify this works? Include commands if you ran them locally.
19
+
20
+ - [ ] `pytest` passes
21
+ - [ ] `ruff check src tests` passes
22
+ - [ ] Tested manually against a real CallRail account (if applicable)
23
+
24
+ ## Checklist
25
+
26
+ - [ ] Docs updated (README / docstrings) if the change affects user-facing API
27
+ - [ ] `CHANGELOG.md` updated under `## [Unreleased]`
28
+ - [ ] No secrets, API keys, or PII committed
29
+ - [ ] Follows the code style enforced by `ruff`
30
+
31
+ ## Screenshots / output (optional)
32
+
33
+ Paste any relevant output or screenshots.
@@ -0,0 +1,39 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ fail-fast: false
14
+ matrix:
15
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
16
+
17
+ steps:
18
+ - uses: actions/checkout@v6
19
+
20
+ - name: Set up Python ${{ matrix.python-version }}
21
+ uses: actions/setup-python@v6
22
+ with:
23
+ python-version: ${{ matrix.python-version }}
24
+ cache: pip
25
+
26
+ - name: Install package + dev extras
27
+ run: |
28
+ python -m pip install --upgrade pip
29
+ pip install -e ".[dev]"
30
+
31
+ - name: Lint (ruff)
32
+ run: ruff check src tests
33
+
34
+ - name: Type check (mypy)
35
+ run: mypy src
36
+ continue-on-error: true # non-blocking initially; tighten later
37
+
38
+ - name: Run tests
39
+ run: pytest -v
@@ -0,0 +1,32 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ build-and-publish:
10
+ runs-on: ubuntu-latest
11
+ environment:
12
+ name: pypi
13
+ url: https://pypi.org/p/callrail-mcp
14
+ permissions:
15
+ id-token: write # trusted publishing via OIDC
16
+ steps:
17
+ - uses: actions/checkout@v6
18
+
19
+ - name: Set up Python
20
+ uses: actions/setup-python@v6
21
+ with:
22
+ python-version: "3.12"
23
+
24
+ - name: Install build
25
+ run: |
26
+ python -m pip install --upgrade pip build
27
+
28
+ - name: Build sdist + wheel
29
+ run: python -m build
30
+
31
+ - name: Publish to PyPI
32
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,58 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ build/
8
+ develop-eggs/
9
+ dist/
10
+ downloads/
11
+ eggs/
12
+ .eggs/
13
+ lib/
14
+ lib64/
15
+ parts/
16
+ sdist/
17
+ var/
18
+ wheels/
19
+ share/python-wheels/
20
+ *.egg-info/
21
+ .installed.cfg
22
+ *.egg
23
+ MANIFEST
24
+
25
+ # Virtual envs
26
+ .venv/
27
+ venv/
28
+ env/
29
+ ENV/
30
+
31
+ # Testing
32
+ .pytest_cache/
33
+ .coverage
34
+ .coverage.*
35
+ htmlcov/
36
+ .tox/
37
+ .nox/
38
+ coverage.xml
39
+ *.cover
40
+
41
+ # Mypy / Ruff caches
42
+ .mypy_cache/
43
+ .ruff_cache/
44
+ .dmypy.json
45
+ dmypy.json
46
+
47
+ # IDE
48
+ .vscode/
49
+ .idea/
50
+ *.swp
51
+
52
+ # OS
53
+ .DS_Store
54
+
55
+ # Secrets — never commit
56
+ .env
57
+ *.api-key
58
+ callrail-api-key.txt