Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Self-custody Ethereum Agent Wallet. All chains enabled by default. User assumes all risks.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
RUSTOK_AGENT_PASSWORDค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"rustok-wallet": {
"command": "npx",
"args": [
"-y",
"rustok-agent-mcp"
],
"env": {
"RUSTOK_AGENT_PASSWORD": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add rustok-wallet --env RUSTOK_AGENT_PASSWORD='ใส่ค่าของคุณ' -- npx -y rustok-agent-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"rustok-wallet": {
"command": "npx",
"args": [
"-y",
"rustok-agent-mcp"
],
"env": {
"RUSTOK_AGENT_PASSWORD": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"rustok-wallet": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"rustok-agent-mcp"
],
"env": {
"RUSTOK_AGENT_PASSWORD": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub temrjan ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: RUSTOK_AGENT_PASSWORD
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.2) เข้า registry 6 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Tools MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Web production tools for AI agents: contrast, JP text, WebP, JSON-LD, slugs, dates and 40+ more
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Ethereum wallet with chain abstraction and transaction security engine.
Status: Production — Phase 7 DONE — Android verified on Sepolia; iOS supported. React Native app with real on-chain transactions, full onboarding, and txguard live analysis.
Website: rustokwallet.com | X: @rustokwallet | Agent editions: github.com/rustok-org
Rustok is a self-custody Ethereum wallet built around two ideas:
txguard before signing. It decodes calldata, runs security rules, simulates execution via revm, and enriches findings with threat intelligence.The mobile app (Android + iOS) is the primary interface. A public HTTP API and CLI are available for headless txguard analysis.
2026 evolution: the same self-custody core now ships as a wallet for AI agents — MCP tools with fail-closed capability gating (read / preview / execute) and a three-rung trust ladder (autonomous agent → console-approved → phone-signed). See rustokwallet.com and the rustok-org repositories (mcp, console, mobile, paraswap-mcp, uniswap).
m/44'/60'/0'/0/0), cross-device recovery┌─────────────────────────────────────────────────────────────┐
│ Mobile App (Android / iOS) │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌────────────────┐ │ │ │ Wallet │ │ Activity│ │ TxGuard │ │ Settings │ │ │ │ Tab │ │ Tab │ │ Tab │ │ (Appearance, │ │ │ │ │ │ │ │ │ │ Biometric, │ │ │ │ • Hero │ │ • TX │ │ • Risk │ │ Auto-lock, │ │ │ │ card │ │ list │ │ badge │ │ Network) │ │ │ │ • Send │ │ • Pull │ │ • Per- │ │ │ │ │ │ • QR │ │ refresh│ │ finding│ │ │ │ │ └─────────┘ └─────────┘ └─────────┘ └────────────────┘ │ │ ┌─────────────────────────────────────────────────────────┐│ │ │ React Navigation v7 • Zustand 5 • NativeWind v4 ││ │ │ Reanimated 4 • MMKV • Keychain • Argon2id ││ │ └─────────────────────────────────────────────────────────┘│ └───────────────────────────┬─────────────────────────────────┘ │ JS ↔ Rust Bridge ┌───────────────────────────▼─────────────────────────────────┐ │ react-native-rustok-bridge │ │ (uniffi-bindgen-react-native 0.31) │ └───────────────────────────┬─────────────────────────────────┘ │ FFI ┌───────────────────────────▼─────────────────────────────────┐ │ Rust Workspace │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │ │ │ rustok-core │ │ txguard │ │ rustok-api │ │ │ │ │ │ │ │ │ │ │ │ • keyring │ │ • parser │ │ Axum HTTP server │ │ │ │ • provider │ │ • rules │ │ /health │ │ │ │ • router │ │ • simulator │ │ /check-address │ │ │ │ • send │ │ • enrichment│ │ /decode │ │ │ │ • explorer │ │ │ │ │ │ │ │ • explainer │ │ 8 security │ │ Self-hosted │ │ │ │ • convert │ │ rules │ │ (see deploy/) │ │ │ └─────────────┘ └─────────────┘ └─────────────────────┘ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │ │ │ rustok-cli │ │ rustok-types│ │rustok-mobile-bindings│ │ │ │ │ │ │ │ │ │ │ │ CLI binary │ │ Shared DTOs │ │ uniffi FFI exports │ │ │ │ (decode, │ │ (no crypto │ │ for iOS / Android │ │ │ │ analyze, │ │ deps) │ │ │ │ │ │ wallet, │ │ │ │ │ │ │ │ send) │ │ │ │ │ │ │ └─────────────┘ └─────────────┘ └─────────────────────┘ │ └─────────────────────────────────────────────────────────────┘
| Layer | Technology |
|---|---|
| Mobile | React Native 0.85.2, React 19.2.3, TypeScript 5.8 |
| Navigation | React Navigation v7 (bottom-tabs, native-stack) |
| Styling | NativeWind v4, TailwindCSS 3.4, design-token system |
| State | Zustand 5, MMKV (persistent), React Native Keychain (secrets) |
| Animations | Reanimated 4.3, React Native Worklets, Gesture Handler |
| Bridge | uniffi-bindgen-react-native 0.31.0-2 |
| Language | Rust (edition 2024) |
| EVM | revm v36, alloy-evm v0.30 |
| Ethereum | alloy-rs v1.8 (provider, signer, primitives, consensus) |
| Crypto | BIP39 (m/44'/60'/0'/0/0), AES-256-GCM, Argon2id, secp256k1 |
| HTTP | Axum 0.8, Tower HTTP (CORS, trace) |
| Async | Tokio, Futures |
| Serialization | Serde, Serde JSON |
| CLI | clap v4 |
| Logging | tracing, tracing-subscriber |
Prerequisites: Node.js ≥ 22.11, Android SDK (for Android) or Xcode + CocoaPods (for iOS).
# Install dependencies
cd mobile && npm install
npx react-native start --port 8081
cd android && ./gradlew app:installDebug -PreactNativeDevServerPort=8081
cd ios && pod install && cd .. && npx react-native run-ios
For physical Android devices:
adb reverse tcp:8081 tcp:8081
Detailed mobile docs: See
mobile/README.mdfor onboarding flow, bridge surface, DEV escape hatches, and Android/Windows specifics.
# Run all tests
cargo test --workspace
cargo build -p rustok --release
cargo run -p rustok-api
# Decode ERC-20 approve calldata
rustok decode \ --to 0xdAC17F958D2ee523a2206206994597C13D831ec7 \ --data 0x095ea7b3000000000000000000000000000000000000000000000000000000000000dead00000000000000000000000000000000000000000000000000000000000f4240
rustok analyze \ --to 0xdAC17F958D2ee523a2206206994597C13D831ec7 \ --data 0x095ea7b3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
# Generate a new encrypted wallet
rustok wallet new --password "your-secure-password"
rustok wallet balance 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
rustok wallet info --keystore 0xabc...def.json --password "your-password"
rustok wallet send --keystore wallet.json --password "pwd" --to 0xd8dA...6045 --amount 0.1
| Rule | Severity | Trigger |
|---|---|---|
unlimited_approval | Warning | approve(spender, type(uint256).max) |
set_approval_for_all | Warning | setApprovalForAll(operator, true) |
permit_to_unknown | Danger | EIP-2612 permit to unknown spender |
permit_unlimited | Warning | Permit with value == U256::MAX |
known_scam | Forbidden | Address in scam database |
unknown_function | Warning | Unrecognized function selector |
value_with_calldata | Warning | ETH sent with contract call |
send_to_contract | Info | Transfer to contract address |
| Chain | ID | Status |
|---|---|---|
| Ethereum | 1 | Active |
| Arbitrum One | 42161 | Active |
| Base | 8453 | Active |
| Optimism | 10 | Active |
| zkSync Era | 324 | Active |
| Sepolia | 11155111 | Testnet |
Public API for transaction security analysis (rustok-api, Axum). Self-hosted — see deploy/.
| Endpoint | Method | Description |
|---|---|---|
/health | GET | Health check |
/check-address | POST | Address security check via GoPlus (malicious flag, risk level, risks) |
/decode | POST | Decode and analyze raw EVM transaction (action, risk score, findings) |
# Check address
curl -X POST https://your-rustok-api-host/check-address \ -H "Content-Type: application/json" \ -d '{"address": "0xdAC17F958D2ee523a2206206994597C13D831ec7"}'
curl -X POST https://your-rustok-api-host/decode \ -H "Content-Type: application/json" \ -d '{"to": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "data": "0x095ea7b3000000000000000000000000000000000000000000000000000000000000dead00000000000000000000000000000000000000000000000000000000000f4240"}'
Deployed via Docker + Caddy on 185.197.195.191 (deploy/).
517 tests, 0 failures
Pre-commit gates:
# Rust
cargo fmt --all --check cargo clippy --workspace --all-targets -- -D warnings cargo test --workspace
cd mobile && npm run typecheck && npm run lint && npm run test
rustok/
├── mobile/ # React Native app (primary UI) │ ├── src/ │ │ ├── screens/ # Wallet, Activity, TxGuard, Settings, Onboarding │ │ ├── components/ # Design system primitives │ │ ├── navigation/ # AppShell, navigators │ │ ├── stores/ # Zustand + MMKV state │ │ ├── hooks/ # Selectors and logic │ │ ├── lib/ # Bridge, formatting, explorers │ │ └── theme/ # Design tokens │ ├── android/ # Gradle project │ └── ios/ # Xcode project │ ├── packages/ │ └── react-native-rustok-bridge/ # uniffi JS ↔ Rust bridge package │ ├── crates/ # Rust workspace │ ├── txguard/ # Transaction security engine │ ├── core/ # Wallet logic (keyring, provider, router, send) │ ├── types/ # Shared DTOs │ ├── api/ # Axum HTTP server │ ├── cli/ # CLI binary │ └── rustok-mobile-bindings/ # uniffi FFI exports │ ├── deploy/ # Docker + Caddy deployment └── docs/ # Architecture, phase handoffs, incident reports
Rustok is dual-licensed:
ตัดมาแค่ช่วงต้น อ่านต่อใน repo