vara-server
MCP server for Vara Network smart program development with Sails
Installation
npx vara-mcp-serverAsk AI about vara-server
Powered by Claude Β· Grounded in docs
I know everything about vara-server. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Vara MCP Server
Build Vara Network smart programs 40-100x faster with AI-assisted development in Cursor IDE.
A production-ready Model Context Protocol (MCP) server that lets you scaffold, compile, test, and generate TypeScript clients for Vara Network smart programs using natural language.
π Before vs After
β Before: Traditional Vara Development
π Manual Steps Required β±οΈ Time
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1. Research Sails docs & examples 30-60 min
2. Manually create Cargo.toml, lib.rs, build.rs 15-30 min
3. Write service, program, events from scratch 30-60 min
4. Debug build errors (targets, crate-types) 15-45 min
5. Run cargo build, fix errors, repeat 5-10 min
6. Research gear-js API for client code 45-90 min
7. Write TypeScript client from scratch 30-45 min
8. Set up tests with gtest 20-30 min
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Total: 3-6 hours for a basic counter program π«
β After: With vara-mcp-server
π¬ Just Ask in Cursor β±οΈ Time
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
"Create a Vara MVP called my-counter" ~2 min
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Complete Rust program with Sails
β Service with state, commands, queries, events
β Proper Cargo.toml with all dependencies
β Build script for WASM compilation
β TypeScript client with full API
β Ready to deploy!
Total: ~2 minutes π
π Speed Comparison
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Time to First Working Program β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Traditional ββββββββββββββββββββββββββββββββββββ 3-6 hours β
β β
β With MCP ββ ~2 minutes β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββ β
β 40-100x faster β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π¦ Installation
npm install -g vara-mcp-server
βοΈ Cursor IDE Setup
Add to your .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"vara-mcp": {
"command": "npx",
"args": ["vara-mcp-server"]
}
}
}
Restart Cursor after adding the configuration.
π οΈ Available Tools
| Tool | Description | Example |
|---|---|---|
vara_scaffold_program | Create new Vara program from template | "Create a counter program called my-dapp" |
vara_compile | Compile to optimized WASM | "Compile my-dapp in release mode" |
vara_test | Run program tests | "Run tests for my-dapp" |
vara_client_scaffold | Generate TypeScript client | "Generate a client for my-dapp" |
vara_docs_search | Search Vara/Sails documentation | "How do I emit events in Sails?" |
π¬ Available Prompts
Create a Vara MVP
Runs the complete workflow automatically:
Scaffold β Compile β Test β Generate Client
Add Feature to Program
Get guidance on adding new features to existing programs with code suggestions.
π Available Resources
Access bundled documentation directly in Cursor:
- Vara Sails Quickstart - Getting started guide
- Build Targets & Gotchas - Common issues and solutions
- Gear-JS Interaction Basics - JavaScript SDK guide
π― Example Usage
1. Create a New Program
In Cursor chat:
Create a Vara smart program called "my-token" using the counter template
2. Compile to WASM
Compile my-token in release mode
Output (in target/wasm32v1-none/wasm32-gear/release/):
β my_token.opt.wasm
β my_token.idl
β my_token.wasm
3. Generate TypeScript Client
Generate a TypeScript client for my-token
4. Use the Client
import { MyTokenClient } from './my-token-client';
const client = new MyTokenClient();
await client.connect('wss://testnet.vara.network');
await client.initKeyring(process.env.VARA_SEED);
// Upload program
const programId = await client.uploadProgram({
wasmPath: './target/wasm32v1-none/wasm32-gear/release/my_token.opt.wasm'
});
// Interact
await client.sendMessage({ payload: { Counter: { Increment: null } } });
const state = await client.readState();
π Security
This server implements strict security measures:
| Feature | Implementation |
|---|---|
| Command Allowlist | Only cargo, node, npm/pnpm/yarn, rustup allowed |
| Path Sandboxing | All file operations restricted to workspace root |
| No Shell Execution | Commands spawned directly with shell: false |
| No Secret Persistence | Secrets read from env vars only, never logged |
See security.md for details.
π§ͺ Development
Prerequisites
- Node.js 18+
- pnpm 9+
- Rust toolchain (for testing builds)
- WASM target for Vara:
rustup target add wasm32v1-none
Setup
git clone https://github.com/Adityaakr/vara-mcp-server.git
cd vara-mcp-server
pnpm install
pnpm build
pnpm test
Run Locally
node packages/server/dist/index.js
π Project Structure
vara-mcp-server/
βββ packages/
β βββ server/ # MCP server entry point
β βββ runtime/ # Safe execution utilities
β βββ templates/ # Sails program templates
β βββ chain/ # TypeScript client generator
βββ docs/
β βββ cursor-setup.md
β βββ security.md
β βββ troubleshooting.md
βββ README.md
π Troubleshooting
cargo not found
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Build output location
Run `rustup target add wasm32v1-none`, then `cargo build --release`. All artifacts are in one folder: `target/wasm32v1-none/wasm32-gear/release/` (.opt.wasm, .idl, .wasm).
Server not connecting in Cursor
- Check path in
.cursor/mcp.json - Restart Cursor completely
- Enable debug mode:
"env": { "VARA_DEBUG": "true" }
See troubleshooting.md for more solutions.
π€ Contributing
Contributions are welcome! Please read CONTRIBUTING.md for guidelines.
π License
MIT Β© Aditya Kumar
π Links
Built for the Vara Network ecosystem
Supercharge your Vara development with AI β‘
