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.
- celo_mcp-0.1.5/.env.example +0 -0
- celo_mcp-0.1.5/.github/ISSUE_TEMPLATE/release.md +66 -0
- celo_mcp-0.1.5/.github/workflows/publish.yml +88 -0
- celo_mcp-0.1.5/.github/workflows/test.yml +44 -0
- celo_mcp-0.1.5/.gitignore +10 -0
- celo_mcp-0.1.5/.python-version +1 -0
- celo_mcp-0.1.5/LICENSE +1 -0
- celo_mcp-0.1.5/Makefile +53 -0
- celo_mcp-0.1.5/PKG-INFO +683 -0
- celo_mcp-0.1.5/README.md +652 -0
- celo_mcp-0.1.5/docs/CICD.md +191 -0
- celo_mcp-0.1.5/docs/architecture.md +371 -0
- celo_mcp-0.1.5/examples/basic_usage.py +90 -0
- celo_mcp-0.1.5/pyproject.toml +72 -0
- celo_mcp-0.1.5/renovate.json +6 -0
- celo_mcp-0.1.5/scripts/release.py +144 -0
- celo_mcp-0.1.5/src/celo_mcp/__init__.py +17 -0
- celo_mcp-0.1.5/src/celo_mcp/blockchain_data/__init__.py +13 -0
- celo_mcp-0.1.5/src/celo_mcp/blockchain_data/client.py +347 -0
- celo_mcp-0.1.5/src/celo_mcp/blockchain_data/models.py +112 -0
- celo_mcp-0.1.5/src/celo_mcp/blockchain_data/service.py +129 -0
- celo_mcp-0.1.5/src/celo_mcp/config/__init__.py +5 -0
- celo_mcp-0.1.5/src/celo_mcp/config/settings.py +56 -0
- celo_mcp-0.1.5/src/celo_mcp/contracts/__init__.py +0 -0
- celo_mcp-0.1.5/src/celo_mcp/governance/__init__.py +0 -0
- celo_mcp-0.1.5/src/celo_mcp/nfts/__init__.py +0 -0
- celo_mcp-0.1.5/src/celo_mcp/server.py +159 -0
- celo_mcp-0.1.5/src/celo_mcp/tokens/__init__.py +0 -0
- celo_mcp-0.1.5/src/celo_mcp/transactions/__init__.py +0 -0
- celo_mcp-0.1.5/src/celo_mcp/utils/__init__.py +13 -0
- celo_mcp-0.1.5/src/celo_mcp/utils/cache.py +124 -0
- celo_mcp-0.1.5/src/celo_mcp/utils/logging.py +61 -0
- celo_mcp-0.1.5/src/celo_mcp/utils/validators.py +135 -0
- celo_mcp-0.1.5/tests/__init__.py +0 -0
- celo_mcp-0.1.5/tests/test_client.py +0 -0
- celo_mcp-0.1.5/tests/test_service.py +0 -0
- celo_mcp-0.1.5/tests/test_validators.py +133 -0
- 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 @@
|
|
|
1
|
+
3.11
|
celo_mcp-0.1.5/LICENSE
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
celo_mcp-0.1.5/Makefile
ADDED
|
@@ -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."
|