Connect Your AI Tool
Connect Guavy's scored market news and sentiment to Claude Desktop, ChatGPT, Cursor, VS Code, the Anthropic API or any LLM framework. Each tab is a step-by-step setup with copy-paste configs.
Claude Desktop
Native MCP support: 21 tools in Claude. The news, sentiment and market data tools cover every live market; the trade-signal tools are crypto-only.
Get your Guavy API key
Start free. Your key is on your dashboard as soon as you sign in.
Download Claude Desktop
Download Claude Desktop if you don't have it yet, then install and open it.
Add Guavy as a connector
Go to Claude Desktop → Settings → Connectors → Add custom connector.
Paste the following URL (replace YOUR_GUAVY_API_KEY with your key):
https://guavy.com/mcp?key=YOUR_GUAVY_API_KEY
No Node.js or config files needed. Just paste the URL and you're connected.
Grant permission
After adding the connector, click the Configure button and set permission to Always allow to avoid having to authorize each request.
Try it
Ask Claude: "What's the latest news on BTC, and how has its sentiment moved this week?"
Claude will call get_recent_briefs and
get_sentiment_history and answer from Guavy's data.
Alternative: config file method (requires Node.js)
If custom connectors are not available in your version of Claude Desktop,
go to Settings → Developer → Edit Config
and add the following to claude_desktop_config.json:
{
"mcpServers": {
"guavy": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://guavy.com/mcp?key=YOUR_GUAVY_API_KEY"]
}
}
}
Requires
Node.js
installed
(Mac: brew install node
· Windows:
winget install OpenJS.NodeJS
·
Linux: sudo apt install nodejs npm).
Restart Claude Desktop after saving.
ChatGPT Custom GPT
Add Guavy to a Custom GPT as an OpenAPI Action
Get your Guavy API key
Start free, then copy your API key from the dashboard.
Create a Custom GPT
Go to chatgpt.com/gpts → Create a GPT → Configure → Actions → Create new action.
Import the OpenAPI schema
In the schema field, import from this URL. ChatGPT reads every Guavy endpoint from it:
https://guavy.com/openapi.json
Set authentication
Under Authentication, set Type to API Key, Auth type to Bearer, and paste your Guavy API key.
Add these instructions to your GPT
Paste into the Instructions field for best results:
Use the Guavy Action for every question about market news, sentiment, prices or other market data. Do not use web search or answer from memory for news, sentiment, prices, signals, or recommendations. Always call the Guavy API for this data rather than guessing. When asked about an asset, check its recent news briefs and sentiment history before responding. For a crypto asset, the trade simulator's current action is also available. If a Guavy action fails, say that Guavy's data was unavailable rather than guessing.
Disable web search
Under Capabilities, turn off Web Search so your GPT answers from Guavy's data instead of searching the web.
Test it
Ask your GPT: "Summarize the latest news on oil and how its sentiment has moved."
Cursor / VS Code
Add Guavy as an MCP server in Cursor, or in VS Code with GitHub Copilot
Open Cursor MCP settings
Go to Cursor Settings → MCP → Add MCP Server.
Enter server details
- Name:
Guavy - Type:
SSE -
URL:
https://guavy.com/mcp -
Header:
Authorization: Bearer YOUR_GUAVY_API_KEY
Try it in chat
In Cursor Chat: "@guavy What is the sentiment trend for ETH this week?"
Create .vscode/mcp.json in your project
Add this file (replace YOUR_GUAVY_API_KEY):
{
"servers": {
"guavy": {
"type": "sse",
"url": "https://guavy.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_GUAVY_API_KEY"
}
}
}
}
Reload VS Code
Copilot will auto-discover the 21 Guavy tools. Use them in the Copilot Chat sidebar.
Anthropic API (Direct Tool Use)
Define Guavy endpoints as tools in your Claude API calls, with no wrapper library
Install dependencies
pip install anthropic requests
Define tools and run an agentic loop
import json import anthropic import requests client = anthropic.Anthropic(api_key="YOUR_ANTHROPIC_KEY") GUAVY_KEY = "YOUR_GUAVY_API_KEY" GUAVY_BASE = "https://guavy.com/api/v2/crypto" tools = [ { "name": "get_recent_briefs", "description": "Get a coin's latest scored news briefs: headline, summary, six scores and the assets each may affect", "input_schema": { "type": "object", "properties": { "symbol": {"type": "string", "description": "Coin symbol, e.g. BTC"}, "limit": {"type": "integer", "description": "How many briefs, newest first"} }, "required": ["symbol"] } }, { "name": "get_market_summary", "description": "Get today's AI-generated crypto market summary", "input_schema": {"type": "object", "properties": {}} } ] def call_guavy(tool_name, tool_input): headers = {"Authorization": f"Bearer {GUAVY_KEY}"} if tool_name == "get_recent_briefs": r = requests.get( f"{GUAVY_BASE}/newsroom/get-recent-briefs/{tool_input['symbol']}", headers=headers, params={"limit": tool_input.get("limit", 5)} ) elif tool_name == "get_market_summary": r = requests.get(f"{GUAVY_BASE}/newsroom/get-market-summary", headers=headers) else: return {"error": f"unknown tool {tool_name}"} return r.json() messages = [{"role": "user", "content": "What's the latest news on BTC, and what's the overall crypto mood today?"}] while True: response = client.beta.messages.create( model="claude-opus-5-5", max_tokens=16000, # If the model declines, the API retries the request on a fallback model betas=["server-side-fallback-2026-07-01"], fallbacks="default", tools=tools, messages=messages ) if response.stop_reason != "tool_use": break messages.append({"role": "assistant", "content": response.content}) messages.append({"role": "user", "content": [ {"type": "tool_result", "tool_use_id": block.id, "content": json.dumps(call_guavy(block.name, block.input))} for block in response.content if block.type == "tool_use" ]}) print("".join(block.text for block in response.content if block.type == "text"))
LangChain, CrewAI & Any Framework
Two patterns: llms.txt for spec injection, or native MCP through the LangChain adapter
Install
pip install anthropic requests
Inject the spec and ask for code
Fetches the API spec at runtime, so it's always current with no hardcoding. Works with any LLM or framework that accepts a system prompt.
import os, requests, anthropic GUAVY_KEY = os.environ["GUAVY_API_KEY"] ANTHROPIC_KEY = os.environ["ANTHROPIC_API_KEY"] # Fetch the spec at run time, so new endpoints reach your agent without a code change spec = requests.get("https://guavy.com/llms.txt").text system = f"""You are a developer assistant. Use the Guavy API spec below to write correct requests: never invent an endpoint, parameter or field. {spec} Auth: Authorization: Bearer {GUAVY_KEY} """ client = anthropic.Anthropic(api_key=ANTHROPIC_KEY) response = client.beta.messages.create( model="claude-opus-5-5", max_tokens=16000, # If the model declines, the API retries the request on a fallback model betas=["server-side-fallback-2026-07-01"], fallbacks="default", system=system, messages=[{"role": "user", "content": "Write a Python function that prints BTC's five newest briefs with their sentiment."}] ) print("".join(block.text for block in response.content if block.type == "text"))
Install dependencies
pip install langchain-mcp-adapters langchain-anthropic langgraph
Build an agent that calls Guavy's tools
The agent auto-discovers all 21 Guavy tools and decides which to call based on your question.
import os, asyncio from langchain_mcp_adapters.client import MultiServerMCPClient from langchain_anthropic import ChatAnthropic from langgraph.prebuilt import create_react_agent GUAVY_KEY = os.environ["GUAVY_API_KEY"] async def ask(agent, question): result = await agent.ainvoke({"messages": question}) print(f"\n> {question}") print(result["messages"][-1].content) async def main(): client = MultiServerMCPClient({ "guavy": { "url": "https://guavy.com/mcp", "transport": "streamable_http", "headers": {"Authorization": f"Bearer {GUAVY_KEY}"} } }) tools = await client.get_tools() agent = create_react_agent(ChatAnthropic(model="claude-opus-5-5"), tools) # Each call picks the right tool automatically await ask(agent, "What's the latest scored news on ETH?") await ask(agent, "What's the ETH sentiment trend over the past 2 weeks?") await ask(agent, "Which coins have a buy signal from the trade simulator?") asyncio.run(main())
Ready to go live?
The free Sandbox plan reaches every live market on REST and MCP.