Multi-utility chatbot with PDF ingestion, web search, stock price lookup, GitHub PR listing, and calculator tools. Uses LangGraph for agentic workflows with tool node execution.
Server has 8 tools with inconsistent quality. Four arithmetic tools (add, subtract, multiply, divide) have minimal but present descriptions and valid schemas. The divide tool includes error handling for division by zero. However, the remaining four tools (calculator, list_github_prs, rag_tool, get_stock_price) have poor descriptions that lack context for LLM selection, and their schemas are either partially incomplete or lack parameter descriptions. No output schemas are documented anywhere. Tool naming is generally acceptable (verb-noun convention) but descriptions are frequently too terse to guide LLM reasoning about when to use each tool. The rag_tool description mentions 'Always include the thread_id' but doesn't explain what a thread_id is or how to obtain it. Overall, this server shows incomplete adherence to Arcade's definition quality patterns.
Add two numbers
Perform a basic arithmetic operation on two numbers. Supported operations: add, sub, mul, div
Divide two numbers
Fetch latest stock price for a given symbol (e.g. 'AAPL', 'TSLA') using Alpha Vantage.
List the latest pull requests for a GitHub repository.
Multiply two numbers
Retrieve relevant information from the uploaded PDF for this chat thread. Always include the thread_id when calling this tool.
rag_tool has vague naming and incomplete description. 'rag_tool' does not convey what the tool does (retrieve documents? search? answer?). Description lacks context about what data is available, prerequisites (document must be ingested first), and what format the response takes.
No output schemas documented for any tool. LLMs cannot plan downstream tool calls or extract required fields without knowing response structure. The divide tool returns a float, but list_github_prs, rag_tool, and get_stock_price have no documented return types.
calculator tool description lacks clarity on when to use it vs individual arithmetic tools. It mentions 'Supported operations: add, sub, mul, div' but does not explain the trade-offs (more flexible but potentially slower vs direct tools).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 38 | - | v1 |
Subtract two numbers
list_github_prs has default parameters (state='open', per_page=5) but does not explain why those defaults were chosen or how to handle pagination for large result sets. No documented limit behavior or next-page cursors.
rag_tool requires thread_id parameter but description does not explain how to obtain a thread_id, whether it is auto-generated, or what happens if the thread does not exist. This creates a discovery dependency.
No input validation or error handling guidance visible in tool definitions. divide() checks for zero but returns a generic ValueError; no other tools show error handling. LLMs do not know which errors are retryable or how to recover.
get_stock_price lacks any documentation about rate limits, API key handling, data freshness, or what symbols are valid. No guidance on error cases (invalid symbol, API quota exceeded, network failure).