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.zipInstalls 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.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
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 runninggrpcClientConnected: true→ gRPC client successfully connected to DCSavailableMethods→ 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
| Code | Meaning |
|---|---|
| 200 | Health check successful, service operational |
| 404 | Invalid method name or gRPC method not found |
| 503 | gRPC client not initialized or proto catalogue unavailable |
Troubleshooting
| Issue | Solution |
|---|---|
| Connection refused | Verify Aspire is running with aspire start and port 3000 is available |
Health endpoint returns grpcClientConnected: false | Check DCS service status and network connectivity |
| Proto catalogue endpoint returns 503 | Proto definitions failed to load; check dcs-grpc-wrapper/proto/ |
| gRPC method call fails with 404 | Verify 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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| test-rest-health (this skill) | 0 | 4mo | Review | Beginner |
| observe-whatsapp | 0 | 6mo | Review | Intermediate |
| n8n-expression-syntax | 6 | 4mo | No flags | Beginner |
| optimizing-performance | 1 | 2mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by deadl1f7
View all by deadl1f7 →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.
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.
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.
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.
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".
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".