Skip to main content
Glama
ssql2014

Arcas OnlineEDA MCP Server

by ssql2014

Arcas OnlineEDA MCP Server

MCP (Model Context Protocol) server for interacting with Arcas OnlineEDA platform - a comprehensive web-based Electronic Design Automation tool suite for formal verification, equivalence checking, power analysis, security verification, and FPGA design.

Overview

This MCP server provides programmatic access to Arcas OnlineEDA platform through web automation, enabling AI assistants and automated workflows to:

  • Create and manage EDA projects with intelligent project type detection

  • Upload design files with automatic format recognition

  • Execute various verification types with customizable parameters

  • Navigate the platform seamlessly

  • Process natural language queries with extensive example matching

  • Access platform resources through well-defined URIs

Related MCP server: EDA Tools MCP Server

Features

Core Capabilities

  • Formal Verification: Verify design properties, assertions, and safety requirements

  • Equivalence Checking: Compare functional equivalence between RTL and gate-level designs

  • Power Analysis: Analyze and optimize dynamic and static power consumption

  • Security Verification: Detect vulnerabilities, side-channels, and information leakage

  • FPGA Verification: Platform-specific verification for Xilinx, Intel/Altera designs

Available Tools

  1. arcas_onlineeda_navigate - Navigate platform sections

    • Actions: home, projects, new-project, documentation, settings

    • Smart navigation with session state preservation

  2. arcas_onlineeda_project - Comprehensive project management

    • Actions: create, open, list, delete

    • Project types: formal, equivalence, power, security, fpga

    • Automatic project type detection from context

  3. arcas_onlineeda_upload_file - Intelligent file upload

    • Supported formats: Verilog (.v), SystemVerilog (.sv), VHDL (.vhd/.vhdl)

    • Constraint files: SDC, XDC for timing and placement

    • Automatic file type detection

  4. arcas_onlineeda_run_verification - Advanced verification execution

    • Types: formal, equivalence, power, security, fpga

    • Configurable parameters: timeout, depth, specific properties

    • Real-time progress monitoring

  5. arcas_onlineeda_natural_language - AI-powered natural language interface

    • Extensive example database for high-confidence matching

    • Workflow suggestions and multi-step guidance

    • Context-aware recommendations

Available Resources

Access platform data through these URIs:

  • arcas://projects - List all projects in JSON format

  • arcas://verification-results - Latest verification results

  • arcas://platform-status - Current platform and connection status

  • arcas://documentation - Platform documentation in Markdown

Installation

# Clone the repository
git clone <repository-url>
cd arcas-onlineeda-mcp

# Install dependencies
npm install

# Build the server
npm run build

# Optional: Run setup script for browser dependencies
npm run setup

Configuration

Environment Variables

Create a .env file in the project root:

# Arcas OnlineEDA credentials (optional - will prompt if not set)
ONLINEEDA_USERNAME=your_username
ONLINEEDA_PASSWORD=your_password

# Browser settings
ONLINEEDA_HEADLESS=true      # Set to false to see browser actions
ONLINEEDA_TIMEOUT=30000      # Page load timeout in ms

# Logging
LOG_LEVEL=info               # Options: error, warn, info, debug
LOG_FILE=arcas-onlineeda.log # Log file location

MCP Configuration

Add to your MCP settings file (e.g., ~/.mcp/settings.json):

{
  "mcpServers": {
    "arcas-onlineeda": {
      "command": "node",
      "args": ["/path/to/arcas-onlineeda-mcp/dist/index.js"],
      "env": {
        "ONLINEEDA_USERNAME": "your_username",
        "ONLINEEDA_PASSWORD": "your_password"
      }
    }
  }
}

Usage Examples

Basic Tool Usage

Create a Formal Verification Project

{
  "tool": "arcas_onlineeda_project",
  "arguments": {
    "action": "create",
    "projectName": "risc_v_core_verification",
    "projectType": "formal"
  }
}

Upload Multiple Design Files

{
  "tool": "arcas_onlineeda_upload_file",
  "arguments": {
    "projectId": "proj_123",
    "filePath": "./rtl/cpu_core.v",
    "fileType": "verilog"
  }
}

Run Security Verification

{
  "tool": "arcas_onlineeda_run_verification",
  "arguments": {
    "projectId": "proj_123",
    "verificationType": "security",
    "options": {
      "timeout": 600,
      "properties": ["information_leakage", "timing_attacks", "power_analysis"]
    }
  }
}

Natural Language Examples

The natural language interface understands a wide variety of queries:

Project Creation Queries

  • "I want to create a new formal verification project for my CPU design"

  • "Let's start a power analysis project for the GPU controller"

  • "Set up equivalence checking between RTL and gate-level netlist"

  • "Create a security verification project for my AES encryption module"

Verification Queries

  • "Check if my RISC-V core meets all safety properties"

  • "Verify that the optimized design is functionally equivalent to the original"

  • "Analyze power consumption during different operating modes"

  • "Find security vulnerabilities in my crypto module"

  • "Run formal verification with 20 cycle depth"

File Operation Queries

  • "Upload my Verilog files for the memory controller"

  • "Add the SystemVerilog testbench to the project"

  • "Import SDC timing constraints"

  • "Load all RTL files from the design directory"

Navigation and Status Queries

  • "Show me all my verification projects"

  • "Go to the documentation"

  • "What's the status of my current verification?"

  • "Navigate to project settings"

Complex Workflow Queries

  • "I need to verify my AES encryption module meets FIPS standards"

  • "Compare power consumption before and after optimization"

  • "Set up a complete verification flow for my SoC design"

  • "Help me debug failing assertions in my formal verification"

Accessing Resources

// List all projects
{
  "action": "read_resource",
  "uri": "arcas://projects"
}

// Check platform status
{
  "action": "read_resource", 
  "uri": "arcas://platform-status"
}

// Get documentation
{
  "action": "read_resource",
  "uri": "arcas://documentation"
}

Advanced Usage

Workflow Automation

Create complex workflows by chaining tools:

// Complete verification workflow
const workflow = [
  {
    tool: "arcas_onlineeda_project",
    args: { action: "create", projectType: "formal", projectName: "soc_verification" }
  },
  {
    tool: "arcas_onlineeda_upload_file",
    args: { filePath: "./rtl/soc_top.v", fileType: "verilog" }
  },
  {
    tool: "arcas_onlineeda_upload_file",
    args: { filePath: "./constraints/timing.sdc", fileType: "constraints" }
  },
  {
    tool: "arcas_onlineeda_run_verification",
    args: { verificationType: "formal", options: { depth: 30, timeout: 1200 } }
  }
];

Custom Verification Properties

Define specific properties for targeted verification:

{
  "tool": "arcas_onlineeda_run_verification",
  "arguments": {
    "projectId": "proj_456",
    "verificationType": "formal",
    "options": {
      "properties": [
        "assert property (@(posedge clk) req |-> ##[1:3] ack);",
        "assert property (@(posedge clk) !overflow);"
      ],
      "depth": 50
    }
  }
}

Architecture

The server implements a modular architecture:

arcas-onlineeda-mcp/
├── src/
│   ├── index.ts           # Main server entry point
│   ├── tools/             # Tool implementations
│   │   ├── base.ts        # Abstract tool class
│   │   ├── navigate.ts    # Navigation tool
│   │   ├── project.ts     # Project management
│   │   ├── upload-file.ts # File upload handling
│   │   ├── run-verification.ts # Verification execution
│   │   └── natural-language.ts # NLP interface
│   ├── utils/             # Utility modules
│   │   ├── browser.ts     # Puppeteer browser management
│   │   └── logger.ts      # Winston logging
│   └── types/             # TypeScript type definitions
├── package.json
├── tsconfig.json
└── README.md

Key Components

  • Browser Manager: Handles Puppeteer lifecycle, authentication, and page navigation

  • Tool Base Class: Provides consistent validation and error handling

  • Natural Language Processor: Extensive example matching and intent detection

  • Resource Provider: Serves platform data through MCP resources

  • Session Manager: Maintains login state and project context

Development

# Run in development mode with hot reload
npm run dev

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Lint code
npm run lint

# Format code
npm run format

# Type check
npm run typecheck

# Build for production
npm run build

Adding New Tools

  1. Create a new tool class extending AbstractTool

  2. Implement required methods: getName(), getDescription(), execute()

  3. Add tool to the server's tool map

  4. Update natural language examples

Troubleshooting

Common Issues

Browser Connection

Error: Failed to launch browser

Solution: Install Chrome/Chromium or run npm run setup

Authentication Failures

Error: Login failed

Solutions:

  • Verify credentials in environment variables

  • Check if account is active on OnlineEDA

  • Try manual login with ONLINEEDA_HEADLESS=false

Element Not Found

Error: Waiting for selector failed

Solutions:

  • Platform UI may have changed

  • Check internet connectivity

  • Increase timeout values

Debug Mode

Enable detailed logging:

LOG_LEVEL=debug npm run dev

View browser actions:

ONLINEEDA_HEADLESS=false npm run dev

Performance Tips

  1. Reuse project sessions when possible

  2. Batch file uploads for better performance

  3. Use appropriate timeouts for long-running verifications

  4. Enable caching for frequently accessed resources

Security Considerations

  • Credentials: Stored securely in environment variables

  • Browser Isolation: Runs in sandboxed Chromium instance

  • Audit Logging: All operations logged with timestamps

  • Session Management: Automatic logout on shutdown

  • Data Privacy: No data stored locally except logs

Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit changes (git commit -m 'Add amazing feature')

  4. Push to branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

Development Guidelines

  • Write tests for new features

  • Update documentation

  • Follow TypeScript best practices

  • Add natural language examples for new capabilities

  • Ensure backward compatibility

Support

  • Issues: Report bugs via GitHub Issues

  • Documentation: Access via arcas://documentation

  • Examples: See natural language tool for extensive examples

  • Community: Join our Discord server

License

MIT License - see LICENSE file for details

Acknowledgments

  • Arcas Microelectronics for the OnlineEDA platform

  • Model Context Protocol team for the MCP framework

  • Puppeteer team for browser automation tools

Available Tools

5 tools
arcas_onlineeda_natural_languageC

Process natural language queries for Arcas OnlineEDA operations with extensive examples

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
contextNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions 'process' and 'extensive examples' but doesn't disclose behavioral traits like whether this is a read-only or mutating operation, authentication needs, rate limits, error handling, or what 'process' entails (e.g., returns results, executes commands). This leaves significant gaps for a tool with 2 parameters and no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that's appropriately sized. It's front-loaded with the core purpose ('Process natural language queries...'), though the 'extensive examples' part feels tacked on without clear value. There's minimal waste, but it could be more structured with clearer separation of purpose and usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 parameters with 0% schema coverage, no annotations, no output schema, and sibling tools, the description is incomplete. It doesn't explain what the tool returns, how it differs from other tools, or provide enough context for safe and effective use. For a natural language processing tool in a technical domain like EDA, more detail on behavior and outputs is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions 'natural language queries' which aligns with the 'query' parameter, but doesn't explain the 'context' parameter at all. The phrase 'extensive examples' might hint at usage but adds no specific semantics about parameter formats, constraints, or relationships. This fails to adequately cover the 2 undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'Process natural language queries for Arcas OnlineEDA operations' which provides a clear verb ('process') and resource ('natural language queries'), but it doesn't specify what type of processing occurs (e.g., interpretation, translation, execution) or how it differs from sibling tools like 'arcas_onlineeda_navigate' or 'arcas_onlineeda_project'. The mention of 'extensive examples' is vague about purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. It mentions 'extensive examples' which might imply usage for complex queries, but there's no clear when/when-not criteria or named alternatives. Without context, it's unclear if this is for general queries, specific operations, or how it complements other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcas_onlineeda_navigateC

Navigate to different sections of the OnlineEDA platform

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNo
projectIdNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description mentions 'navigate' but doesn't explain what this entails—e.g., whether it changes UI state, requires authentication, has side effects like loading pages, or handles errors. It lacks details on behavioral traits like rate limits, response format, or any platform-specific constraints, making it insufficient for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence: 'Navigate to different sections of the OnlineEDA platform'. It's front-loaded with the core purpose, has zero waste, and is appropriately sized for a simple navigation tool. Every word earns its place by conveying the essential function without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (2 parameters, no annotations, no output schema), the description is incomplete. It doesn't address parameter usage, behavioral aspects like what 'navigate' returns or any side effects, or how it fits with sibling tools. For a tool with no structured data support, the description should provide more context to guide the agent effectively, but it falls short.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. The description doesn't mention any parameters, even though there are 2 (action and projectId). It fails to add meaning beyond the schema, such as explaining what 'action' values like 'home' or 'projects' do, or when 'projectId' is required. This leaves parameters largely unexplained, scoring low due to the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool's purpose as 'Navigate to different sections of the OnlineEDA platform', which is clear but vague. It specifies the verb 'navigate' and resource 'OnlineEDA platform', but doesn't distinguish from siblings like arcas_onlineeda_project or arcas_onlineeda_run_verification, which might also involve platform interactions. The purpose is understandable but lacks specificity about what 'navigate' entails compared to other tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, such as when to choose this over sibling tools like arcas_onlineeda_natural_language for interactions. There's no explicit or implied usage advice, leaving the agent to infer based on the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcas_onlineeda_projectD

Manage projects in OnlineEDA platform

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNo
projectNameNo
projectTypeNo
projectIdNo

TDQS

D1.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure but fails completely. 'Manage projects' doesn't indicate whether this is a read or write operation, what permissions are required, whether actions are destructive, what happens when projects are deleted, or what the response format looks like. For a tool with four actions including 'delete', this lack of behavioral information is critical.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - a single five-word phrase. While this is efficient and front-loaded, it's so brief that it under-specifies rather than being appropriately sized. Every word earns its place, but there simply aren't enough words to be helpful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (four actions including potentially destructive operations), zero annotation coverage, zero schema description coverage, and no output schema, the description is completely inadequate. It doesn't explain what the tool does, how to use it, what parameters mean, what behaviors to expect, or what results will be returned. This leaves the agent with insufficient information to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides zero information about any of the four parameters. With 0% schema description coverage (the schema only has basic type information without meaningful descriptions), the description fails to compensate by explaining what 'action', 'projectName', 'projectType', or 'projectId' mean, when they're required, or how they interact. The agent would have to guess parameter usage from the minimal schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Manage projects in OnlineEDA platform' is a tautology that essentially restates the tool name 'arcas_onlineeda_project'. It provides a generic verb ('manage') without specifying what management actions are available or what resources are involved. While it mentions 'projects', it doesn't distinguish this from sibling tools like 'arcas_onlineeda_navigate' or 'arcas_onlineeda_run_verification'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides absolutely no guidance about when to use this tool versus alternatives. It doesn't mention any of the four sibling tools, doesn't explain what types of project operations are available, and offers no context about prerequisites or appropriate use cases. The agent would have no idea when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcas_onlineeda_run_verificationC

Run various verification types on OnlineEDA project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNo
verificationTypeNo
optionsNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'run various verification types' but doesn't explain what happens during execution (e.g., is it a long-running process, does it modify the project, are there side effects like resource consumption). For a tool with potential complexity (multiple verification types), this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a basic tool definition, though it could be more informative. There's no fluff or redundancy, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (multiple verification types, 3 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover what the tool returns, how verification outcomes are reported, or the implications of running different verification types. For a tool that likely involves significant processing, this leaves too much unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It doesn't add any meaning beyond what the schema provides—no explanation of what 'projectId' refers to, how 'verificationType' choices differ, or what 'options' might include. With 3 parameters and no schema descriptions, this is inadequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the action ('run') and target ('verification on OnlineEDA project'), which provides a basic purpose. However, it's vague about what 'verification' entails and doesn't distinguish this tool from its siblings (e.g., navigate, project, upload_file), which appear to be unrelated operations. It lacks specificity about the resource being verified.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context for selecting verification types, or how it relates to sibling tools like 'arcas_onlineeda_project'. Usage is implied only by the action itself, with no explicit when/when-not statements or named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcas_onlineeda_upload_fileC

Upload design files to OnlineEDA project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNo
filePathNo
fileTypeNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While 'upload' implies a write operation, it doesn't specify permissions needed, file size limits, overwrite behavior, error conditions, or what happens after upload. This leaves significant gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized for a basic upload operation and front-loads the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter mutation tool with no annotations, 0% schema coverage, and no output schema, the description is inadequate. It doesn't explain what happens after upload, error handling, or provide enough context about the parameters to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning all 3 parameters are undocumented in the schema. The description mentions 'design files' and 'OnlineEDA project' which loosely map to 'filePath' and 'projectId', but provides no details about parameter formats, constraints, or the optional 'fileType' enum values. It doesn't adequately compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('upload') and target ('design files to OnlineEDA project'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'arcas_onlineeda_project' which might also handle project-related operations, keeping it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'arcas_onlineeda_natural_language' and 'arcas_onlineeda_run_verification', there's no indication of when file upload is appropriate versus other project operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

C2.9/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: natural language processing, navigation, project management, verification runs, and file uploads. There is no overlap in functionality, making it easy for an agent to select the correct tool for any given task.

Naming Consistency5/5

All tools follow a consistent 'arcas_onlineeda_verb_noun' pattern, using snake_case throughout. This predictability aids in tool discovery and usage, with no deviations in naming conventions.

Tool Count5/5

With 5 tools, this server is well-scoped for an OnlineEDA platform, covering core operations like querying, navigation, project management, verification, and file handling. Each tool earns its place without being overwhelming or insufficient.

Completeness4/5

The toolset covers essential CRUD-like operations for the OnlineEDA domain, including project management, file uploads, and verification runs. A minor gap exists in direct editing or deletion capabilities, but agents can likely work around this using the available tools.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    F
    maintenance
    A comprehensive Model Context Protocol server that connects AI assistants to Electronic Design Automation tools, enabling Verilog synthesis, simulation, ASIC design flows, and waveform analysis through natural language interaction.
    6
    108
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to drive Xilinx Vivado, Intel Quartus, and Anlogic TangDynasty for FPGA development, including project creation, synthesis, implementation, timing closure, and hardware programming through natural language.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ssql2014/arcas-onlineeda-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server