Universal Contract AI Interface (UCAI) 🔗 ABI to MCP | The open standard for connecting AI agents to blockchain. MCP server generator for smart contracts. Claude + Uniswap, Aave, ERC20, NFTs, DeFi. Python CLI, Web3 integration, transaction simulation. Polygon, Arbitrum, Base, Ethereum EVM chains. Claude, GPT, LLM tooling, Solidity, OpenAI.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http
verified
reported
listed in the official MCP registry counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 2275a81 · analyzer v33 · 3d ago
skills & prompt files 4
- agent-rules nirholas-UCAI-2275a81/.github/copilot-instructions.md
- agent-rules nirholas-UCAI-2275a81/AGENTS.md
- agent-rules nirholas-UCAI-2275a81/CLAUDE.md
- agent-rules nirholas-UCAI-2275a81/GEMINI.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 230
filesystem 31
- fs (weak) nirholas-UCAI-2275a81/scripts/fetch_abis.py :10
from pathlib import Path - fs nirholas-UCAI-2275a81/src/abi_to_mcp/__init__.py :129
from pathlib import Path - fs nirholas-UCAI-2275a81/src/abi_to_mcp/cli/commands/generate.py :4
from pathlib import Path - fs nirholas-UCAI-2275a81/src/abi_to_mcp/cli/commands/serve.py :5
from pathlib import Path - fs nirholas-UCAI-2275a81/src/abi_to_mcp/cli/commands/validate.py :4
from pathlib import Path - fs nirholas-UCAI-2275a81/src/abi_to_mcp/cli/main.py :8
from pathlib import Path - fs nirholas-UCAI-2275a81/src/abi_to_mcp/core/config.py :5
from pathlib import Path - fs nirholas-UCAI-2275a81/src/abi_to_mcp/fetchers/file.py :9
from pathlib import Path - fs nirholas-UCAI-2275a81/src/abi_to_mcp/generator/server_generator.py :7
from pathlib import Path - fs nirholas-UCAI-2275a81/src/abi_to_mcp/generator/templates/__init__.py :7
from pathlib import Path - fs nirholas-UCAI-2275a81/src/abi_to_mcp/utils/logging.py :6
from pathlib import Path - fs nirholas-UCAI-2275a81/src/abi_to_mcp/utils/validation.py :6
from pathlib import Path
show 19 more
- fs (weak) nirholas-UCAI-2275a81/tests/conftest.py :8
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/integration/server_validator.py :18
import shutil - fs (weak) nirholas-UCAI-2275a81/tests/integration/test_cli.py :4
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/integration/test_end_to_end.py :12
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/integration/test_generated_server.py :4
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/integration/test_server_validation.py :16
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/unit/test_cli/test_generate_command.py :4
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/unit/test_cli/test_inspect_command.py :4
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/unit/test_cli/test_serve_command.py :4
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/unit/test_cli/test_validate_command.py :4
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/unit/test_core/test_config.py :6
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/unit/test_fetchers/test_file.py :6
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/unit/test_fetchers/test_registry.py :72
with open(abi_file, 'w') as f: - fs (weak) nirholas-UCAI-2275a81/tests/unit/test_generate_from_abi.py :5
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/unit/test_generator/test_server_generator.py :5
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/unit/test_parser/test_abi_parser.py :5
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/unit/test_parser/test_real_world_abis.py :9
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/unit/test_utils/test_logging.py :5
from pathlib import Path - fs (weak) nirholas-UCAI-2275a81/tests/unit/test_utils/test_validation.py :4
from pathlib import Path
shell / exec 3
- shell nirholas-UCAI-2275a81/src/abi_to_mcp/cli/commands/serve.py :3
import subprocess - shell (weak) nirholas-UCAI-2275a81/tests/integration/server_validator.py :16
import subprocess - shell (weak) nirholas-UCAI-2275a81/tests/integration/test_end_to_end.py :9
import subprocess
network 5
- net (weak) nirholas-UCAI-2275a81/scripts/fetch_abis.py :12
# Try to import httpx, provide helpful error if not installed - net nirholas-UCAI-2275a81/src/abi_to_mcp/fetchers/etherscan.py :12
import httpx - net nirholas-UCAI-2275a81/src/abi_to_mcp/fetchers/sourcify.py :11
import httpx - net (weak) nirholas-UCAI-2275a81/tests/unit/test_fetchers/test_etherscan.py :57
import httpx - net (weak) nirholas-UCAI-2275a81/tests/unit/test_fetchers/test_sourcify.py :55
import httpx
secrets 2
- secrets nirholas-UCAI-2275a81/src/abi_to_mcp/core/config.py :126
self.private_key = os.environ.get("PRIVATE_KEY") - secrets nirholas-UCAI-2275a81/src/abi_to_mcp/runtime/signer.py :30
private_key = os.environ.get("PRIVATE_KEY")
declared dependencies 16
- typer@>=0.9.0
- rich@>=13.0.0
- httpx@>=0.25.0
- pydantic@>=2.0.0
- jinja2@>=3.1.0
- web3@>=6.0.0
- python-dotenv@>=1.0.0
- pytest@>=7.0.0
- pytest-asyncio@>=0.21.0
- pytest-cov@>=4.0.0
- ruff@>=0.1.0
- mypy@>=1.0.0
show 4 more
- pre-commit@>=3.0.0
- mkdocs@>=1.5.0
- mkdocs-material@>=9.0.0
- mkdocstrings@>=0.24.0