TE

test-rest-health

Test and debug REST API availability and gRPC client connection status.

Install

mkdir -p .claude/skills/test-rest-health && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15211" && unzip -o skill.zip -d .claude/skills/test-rest-health && rm skill.zip

Installs to .claude/skills/test-rest-health

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Test REST endpoint health. Use when: verifying REST API availability, debugging REST connection issues, checking gRPC client status via REST, validating proto catalogue via REST API.
182 chars✓ has a “when” trigger
Beginner

Key capabilities

  • Verify the REST API server is running and responding.
  • Check if the gRPC client is connected via REST endpoint.
  • Debug REST API connection issues.
  • Monitor REST service health during development.
  • Interpret health check responses for status, gRPC client connection, and available methods.
  • Troubleshoot connection refused, gRPC client not connected, and proto catalogue loading issues.

How it works

The skill makes an HTTP GET request to a REST health endpoint and interprets the JSON response to determine the status of the REST API, gRPC client, and proto catalogue.

Inputs & outputs

You give it
A running Aspire AppHost and a REST health endpoint URL.
You get back
A JSON response indicating the health status of the REST API, gRPC client connection, and available gRPC services, or diagnostic information for troubleshooting

When to use test-rest-health

  • Verifying REST API server status
  • Debugging gRPC connection issues
  • Validating service health during development

About this skill

Test REST Endpoint Health

When to Use

  • Verify the REST API server is running and responding
  • Check if the gRPC client is connected via REST endpoint
  • Debug REST API connection issues
  • Monitor REST service health during development

Procedure

1. Start the Aspire AppHost

If not already running, start the Aspire application:

aspire start

This starts the REST API server along with the MCP server.

2. Test the Health Endpoint

Make an HTTP GET request to the REST health endpoint:

curl http://localhost:3000/api/health

Expected response:

{
  "status": "ok",
  "grpcClientConnected": true,
  "availableMethods": [
    "atmosphere",
    "coalition",
    "controller",
    "custom",
    "group",
    "hook",
    "metadata",
    "mission",
    "net",
    "srs",
    "timer",
    "trigger",
    "unit",
    "world"
  ]
}

3. Interpret Results

Healthy Response:

  • status: "ok" → Server is running
  • grpcClientConnected: true → gRPC client successfully connected to DCS
  • availableMethods → List of available gRPC services

Issues:

  • No response → REST server not running. Check Aspire logs: aspire logs
  • grpcClientConnected: false → gRPC client not connected. Verify DCS service is accessible.
  • Empty availableMethods → Proto catalogue failed to load. Check proto files.

5. Call a gRPC Method (Optional)

Test dynamic gRPC invocation via REST:

curl -X POST http://localhost:3000/api/dcs/metadata.version \
  -H "Content-Type: application/json" \
  -d '{"empty": {}}'

HTTP Status Codes

CodeMeaning
200Health check successful, service operational
404Invalid method name or gRPC method not found
503gRPC client not initialized or proto catalogue unavailable

Troubleshooting

IssueSolution
Connection refusedVerify Aspire is running with aspire start and port 3000 is available
Health endpoint returns grpcClientConnected: falseCheck DCS service status and network connectivity
Proto catalogue endpoint returns 503Proto definitions failed to load; check dcs-grpc-wrapper/proto/
gRPC method call fails with 404Verify method name exists in proto catalogue via /api/proto/catalogue

Testing with Node.js

// test-rest-health.js
async function testRestHealth() {
  try {
    const response = await fetch('http://localhost:3000/health');
    const health = await response.json();
    console.log('REST Health:', JSON.stringify(health, null, 2));
    
    if (health.grpcClientConnected && health.status === 'ok') {
      console.log('✓ REST endpoint is healthy');
    } else {
      console.log('✗ REST endpoint has issues');
      process.exit(1);
    }
  } catch (err) {
    console.error('✗ REST endpoint unreachable:', err.message);
    process.exit(1);
  }
}

testRestHealth();

References

See rest.ts for REST API implementation.

When not to use it

  • When the task is not related to REST endpoint health.
  • When the task is not about gRPC client status via REST.
  • When the task is not about validating proto catalogue via REST API.

Limitations

  • It requires the Aspire AppHost to be running.
  • It relies on specific JSON response fields for interpretation.
  • It assumes a default port of 3000 if not specified.

How it compares

This skill provides a specific procedure for testing REST endpoint health, including gRPC client status and proto catalogue validation, offering more detailed diagnostics than a generic HTTP request.

Compared to similar skills

test-rest-health side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
test-rest-health (this skill)04moReviewBeginner
observe-whatsapp06moReviewIntermediate
n8n-expression-syntax64moNo flagsBeginner
optimizing-performance12moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

observe-whatsapp

engryamato

Observe and troubleshoot WhatsApp in Kapso: debug message delivery, inspect webhook deliveries/retries, triage API errors, and run health checks. Use when investigating production issues, message failures, or webhook delivery problems.

00

n8n-expression-syntax

czlonkowski

Validate n8n expression syntax and fix common errors. Use when writing n8n expressions, using {{}} syntax, accessing $json/$node variables, troubleshooting expression errors, or working with webhook data in workflows.

6111

optimizing-performance

CloudAI-X

Analyzes and optimizes application performance across frontend, backend, and database layers. Use when diagnosing slowness, improving load times, optimizing queries, reducing bundle size, or when asked about performance issues.

113

error-tracking

diet103

Add Sentry v8 error tracking and performance monitoring to your project services. Use this skill when adding error handling, creating new controllers, instrumenting cron jobs, or tracking database performance. ALL ERRORS MUST BE CAPTURED TO SENTRY - no exceptions.

14

sentry-install-auth

jeremylongshore

Install and configure Sentry SDK authentication. Use when setting up a new Sentry integration, configuring DSN, or initializing Sentry in your project. Trigger with phrases like "install sentry", "setup sentry", "sentry auth", "configure sentry DSN".

05

fireflies-debug-bundle

jeremylongshore

Collect Fireflies.ai debug evidence for support tickets and troubleshooting. Use when encountering persistent issues, preparing support tickets, or collecting diagnostic information for Fireflies.ai problems. Trigger with phrases like "fireflies debug", "fireflies support bundle", "collect fireflies logs", "fireflies diagnostic".

13

Search skills

Search the agent skills registry