Skip to content

Commit 357b5ad

Browse files
committed
Initial commit: Production-ready webhook-mcp-server v2.0.0
- 16 MCP tools for webhook.site API integration - Production-grade error handling and validation - Structured logging infrastructure - Retry logic with exponential backoff - Comprehensive type hints and documentation - Bug bounty security testing tools - GitHub Actions workflow for automated publishing
0 parents  commit 357b5ad

34 files changed

+6614
-0
lines changed

.github/workflows/publish.yml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: Publish to PyPI and MCP Registry
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
permissions:
8+
contents: read
9+
10+
jobs:
11+
publish-pypi:
12+
name: Publish to PyPI
13+
runs-on: ubuntu-latest
14+
permissions:
15+
id-token: write # IMPORTANT: mandatory for trusted publishing
16+
contents: read
17+
18+
steps:
19+
- name: Checkout code
20+
uses: actions/checkout@v4
21+
22+
- name: Set up Python
23+
uses: actions/setup-python@v5
24+
with:
25+
python-version: "3.10"
26+
cache: "pip"
27+
28+
- name: Install build dependencies
29+
run: |
30+
python -m pip install --upgrade pip
31+
pip install build twine
32+
33+
- name: Build package
34+
run: python -m build
35+
36+
- name: Check distribution
37+
run: twine check dist/*
38+
39+
- name: Publish to PyPI
40+
uses: pypa/gh-action-pypi-publish@release/v1
41+
with:
42+
# Uses OIDC trusted publishing - no token needed
43+
# Configure at: https://pypi.org/manage/account/publishing/
44+
verbose: true
45+
46+
publish-mcp:
47+
name: Publish to MCP Registry
48+
runs-on: ubuntu-latest
49+
needs: publish-pypi # Wait for PyPI publishing to complete
50+
permissions:
51+
id-token: write # Required for OIDC authentication
52+
contents: read
53+
54+
steps:
55+
- name: Checkout code
56+
uses: actions/checkout@v4
57+
58+
- name: Set up Python
59+
uses: actions/setup-python@v5
60+
with:
61+
python-version: "3.10"
62+
63+
- name: Install MCP CLI
64+
run: |
65+
pip install mcp-cli
66+
67+
- name: Publish to MCP Registry
68+
env:
69+
# GitHub OIDC token automatically available
70+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
71+
run: |
72+
# MCP Registry publishing using GitHub OIDC
73+
# Server name format: io.github.{username}/{package-name}
74+
mcp publish io.github.zebbern/webhook-mcp-server \
75+
--github-oidc \
76+
--verbose
77+
78+
- name: Verify publication
79+
run: |
80+
echo "✅ Successfully published to MCP Registry"
81+
echo "Server: io.github.zebbern/webhook-mcp-server"
82+
echo "Version: ${{ github.event.release.tag_name }}"

.gitignore

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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+
*.egg-info/
20+
.installed.cfg
21+
*.egg
22+
23+
# Virtual environments
24+
.venv/
25+
venv/
26+
ENV/
27+
28+
# Testing
29+
.pytest_cache/
30+
.coverage
31+
htmlcov/
32+
.tox/
33+
.nox/
34+
35+
# IDEs
36+
.idea/
37+
.vscode/
38+
*.swp
39+
*.swo
40+
*~
41+
42+
# OS
43+
.DS_Store
44+
Thumbs.db
45+
46+
# Project specific
47+
*.log
48+
.env
49+
.env.local

0 commit comments

Comments
 (0)