celo-mcp 0.1.5__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 (38) hide show
  1. celo_mcp-0.1.5/.env.example +0 -0
  2. celo_mcp-0.1.5/.github/ISSUE_TEMPLATE/release.md +66 -0
  3. celo_mcp-0.1.5/.github/workflows/publish.yml +88 -0
  4. celo_mcp-0.1.5/.github/workflows/test.yml +44 -0
  5. celo_mcp-0.1.5/.gitignore +10 -0
  6. celo_mcp-0.1.5/.python-version +1 -0
  7. celo_mcp-0.1.5/LICENSE +1 -0
  8. celo_mcp-0.1.5/Makefile +53 -0
  9. celo_mcp-0.1.5/PKG-INFO +683 -0
  10. celo_mcp-0.1.5/README.md +652 -0
  11. celo_mcp-0.1.5/docs/CICD.md +191 -0
  12. celo_mcp-0.1.5/docs/architecture.md +371 -0
  13. celo_mcp-0.1.5/examples/basic_usage.py +90 -0
  14. celo_mcp-0.1.5/pyproject.toml +72 -0
  15. celo_mcp-0.1.5/renovate.json +6 -0
  16. celo_mcp-0.1.5/scripts/release.py +144 -0
  17. celo_mcp-0.1.5/src/celo_mcp/__init__.py +17 -0
  18. celo_mcp-0.1.5/src/celo_mcp/blockchain_data/__init__.py +13 -0
  19. celo_mcp-0.1.5/src/celo_mcp/blockchain_data/client.py +347 -0
  20. celo_mcp-0.1.5/src/celo_mcp/blockchain_data/models.py +112 -0
  21. celo_mcp-0.1.5/src/celo_mcp/blockchain_data/service.py +129 -0
  22. celo_mcp-0.1.5/src/celo_mcp/config/__init__.py +5 -0
  23. celo_mcp-0.1.5/src/celo_mcp/config/settings.py +56 -0
  24. celo_mcp-0.1.5/src/celo_mcp/contracts/__init__.py +0 -0
  25. celo_mcp-0.1.5/src/celo_mcp/governance/__init__.py +0 -0
  26. celo_mcp-0.1.5/src/celo_mcp/nfts/__init__.py +0 -0
  27. celo_mcp-0.1.5/src/celo_mcp/server.py +159 -0
  28. celo_mcp-0.1.5/src/celo_mcp/tokens/__init__.py +0 -0
  29. celo_mcp-0.1.5/src/celo_mcp/transactions/__init__.py +0 -0
  30. celo_mcp-0.1.5/src/celo_mcp/utils/__init__.py +13 -0
  31. celo_mcp-0.1.5/src/celo_mcp/utils/cache.py +124 -0
  32. celo_mcp-0.1.5/src/celo_mcp/utils/logging.py +61 -0
  33. celo_mcp-0.1.5/src/celo_mcp/utils/validators.py +135 -0
  34. celo_mcp-0.1.5/tests/__init__.py +0 -0
  35. celo_mcp-0.1.5/tests/test_client.py +0 -0
  36. celo_mcp-0.1.5/tests/test_service.py +0 -0
  37. celo_mcp-0.1.5/tests/test_validators.py +133 -0
  38. celo_mcp-0.1.5/uv.lock +1605 -0
File without changes
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: Release
3
+ about: Plan a new release
4
+ title: "Release v[VERSION]"
5
+ labels: "release"
6
+ assignees: ""
7
+ ---
8
+
9
+ ## Release Checklist
10
+
11
+ ### Pre-Release
12
+
13
+ - [ ] All planned features/fixes are merged
14
+ - [ ] Tests are passing on main branch
15
+ - [ ] Documentation is updated
16
+ - [ ] CHANGELOG.md is updated (if applicable)
17
+ - [ ] Version number is decided: `[VERSION]`
18
+
19
+ ### Release Type
20
+
21
+ - [ ] Patch (bug fixes, small improvements)
22
+ - [ ] Minor (new features, backward compatible)
23
+ - [ ] Major (breaking changes)
24
+
25
+ ### Release Process
26
+
27
+ - [ ] Run `python scripts/release.py [patch|minor|major]` or `make release-[patch|minor|major]`
28
+ - [ ] Verify GitHub Actions workflow completes successfully
29
+ - [ ] Verify package is published to PyPI
30
+ - [ ] Test installation: `uvx install celo-mcp`
31
+ - [ ] Update any dependent projects/documentation
32
+
33
+ ### Post-Release
34
+
35
+ - [ ] Announce release (if applicable)
36
+ - [ ] Close this issue
37
+ - [ ] Plan next release (if applicable)
38
+
39
+ ## Release Notes
40
+
41
+ ### New Features
42
+
43
+ -
44
+
45
+ ### Bug Fixes
46
+
47
+ -
48
+
49
+ ### Breaking Changes
50
+
51
+ -
52
+
53
+ ### Other Changes
54
+
55
+ -
56
+
57
+ ## Testing Instructions
58
+
59
+ ```bash
60
+ # Test the new release
61
+ uvx install celo-mcp
62
+ uvx celo-mcp --help
63
+
64
+ # Test in Claude Desktop
65
+ # Add to claude_desktop_config.json and restart Claude
66
+ ```
@@ -0,0 +1,88 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ jobs:
9
+ test:
10
+ runs-on: ubuntu-latest
11
+ strategy:
12
+ matrix:
13
+ python-version: ["3.11", "3.12"]
14
+
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - name: Install uv
19
+ uses: astral-sh/setup-uv@v3
20
+ with:
21
+ version: "latest"
22
+
23
+ - name: Set up Python ${{ matrix.python-version }}
24
+ run: uv python install ${{ matrix.python-version }}
25
+
26
+ - name: Install dependencies
27
+ run: |
28
+ uv sync --all-extras
29
+
30
+ - name: Run linting
31
+ run: |
32
+ uv run ruff check .
33
+ uv run black --check .
34
+
35
+ # Temporarily disabled due to complex type issues that need refactoring
36
+ # - name: Run type checking
37
+ # run: |
38
+ # uv run mypy src/
39
+
40
+ - name: Run tests
41
+ run: |
42
+ uv run pytest tests/ -v --tb=short
43
+
44
+ publish:
45
+ needs: test
46
+ runs-on: ubuntu-latest
47
+ permissions:
48
+ id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
49
+
50
+ steps:
51
+ - uses: actions/checkout@v4
52
+
53
+ - name: Install uv
54
+ uses: astral-sh/setup-uv@v3
55
+ with:
56
+ version: "latest"
57
+
58
+ - name: Set up Python
59
+ run: uv python install 3.11
60
+
61
+ - name: Extract version from tag
62
+ id: get_version
63
+ run: |
64
+ VERSION=${GITHUB_REF#refs/tags/v}
65
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
66
+ echo "Version: $VERSION"
67
+
68
+ - name: Update version in pyproject.toml
69
+ run: |
70
+ sed -i 's/version = ".*"/version = "${{ steps.get_version.outputs.version }}"/' pyproject.toml
71
+ cat pyproject.toml | grep version
72
+
73
+ - name: Build package
74
+ run: |
75
+ uv build
76
+
77
+ - name: Publish to PyPI
78
+ uses: pypa/gh-action-pypi-publish@release/v1
79
+ with:
80
+ print-hash: true
81
+
82
+ - name: Create GitHub Release
83
+ uses: softprops/action-gh-release@v2
84
+ with:
85
+ files: dist/*
86
+ generate_release_notes: true
87
+ draft: false
88
+ prerelease: false
@@ -0,0 +1,44 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+ branches: [main, develop]
6
+ pull_request:
7
+ branches: [main, develop]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ python-version: ["3.11", "3.12"]
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - name: Install uv
20
+ uses: astral-sh/setup-uv@v3
21
+ with:
22
+ version: "latest"
23
+
24
+ - name: Set up Python ${{ matrix.python-version }}
25
+ run: uv python install ${{ matrix.python-version }}
26
+
27
+ - name: Install dependencies
28
+ run: |
29
+ uv sync --all-extras
30
+
31
+ - name: Run linting
32
+ run: |
33
+ uv run ruff check .
34
+ uv run black --check .
35
+
36
+ - name: Run tests
37
+ run: |
38
+ uv run pytest tests/ -v --tb=short
39
+
40
+ - name: Test package build
41
+ run: |
42
+ uv build
43
+ # Install the built package in a temporary environment
44
+ uv pip install dist/*.whl
@@ -0,0 +1,10 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
@@ -0,0 +1 @@
1
+ 3.11
celo_mcp-0.1.5/LICENSE ADDED
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,53 @@
1
+ .PHONY: help install test lint format type-check build clean release-patch release-minor release-major
2
+
3
+ help: ## Show this help message
4
+ @echo "Available commands:"
5
+ @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
6
+
7
+ install: ## Install dependencies
8
+ uv sync --all-extras
9
+
10
+ test: ## Run tests
11
+ uv run pytest tests/ -v
12
+
13
+ lint: ## Run linting checks
14
+ uv run ruff check .
15
+ uv run black --check .
16
+
17
+ format: ## Format code
18
+ uv run ruff check . --fix
19
+ uv run black .
20
+
21
+ type-check: ## Run type checking
22
+ uv run mypy src/
23
+
24
+ build: ## Build the package
25
+ uv build
26
+
27
+ clean: ## Clean build artifacts
28
+ rm -rf dist/
29
+ rm -rf build/
30
+ rm -rf *.egg-info/
31
+ find . -type d -name __pycache__ -exec rm -rf {} +
32
+ find . -type f -name "*.pyc" -delete
33
+
34
+ check: lint type-check test ## Run all checks (lint, type-check, test)
35
+
36
+ release-patch: ## Create a patch release (0.1.0 → 0.1.1)
37
+ python scripts/release.py patch
38
+
39
+ release-minor: ## Create a minor release (0.1.0 → 0.2.0)
40
+ python scripts/release.py minor
41
+
42
+ release-major: ## Create a major release (0.1.0 → 1.0.0)
43
+ python scripts/release.py major
44
+
45
+ release-dry-run: ## Show what a patch release would do (dry run)
46
+ python scripts/release.py patch --dry-run
47
+
48
+ version: ## Show current version
49
+ python scripts/release.py current
50
+
51
+ dev-setup: install ## Set up development environment
52
+ @echo "Development environment set up successfully!"
53
+ @echo "Run 'make help' to see available commands."