<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Yogesh</title>
    <description>The latest articles on DEV Community by Yogesh (@yj_georankers).</description>
    <link>https://dev.to/yj_georankers</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1271696%2Ff7ed3cfd-3ba0-4913-98d0-cac63cf43d8b.jpg</url>
      <title>DEV Community: Yogesh</title>
      <link>https://dev.to/yj_georankers</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yj_georankers"/>
    <language>en</language>
    <item>
      <title>Query your brand’s AI visibility data from Claude or ChatGPT with the GeoRankers AI MCP server</title>
      <dc:creator>Yogesh</dc:creator>
      <pubDate>Sat, 10 Oct 2026 08:44:57 +0000</pubDate>
      <link>https://dev.to/yj_georankers/query-your-brands-ai-visibility-data-from-claude-or-chatgpt-with-the-georankers-ai-mcp-server-5d6i</link>
      <guid>https://dev.to/yj_georankers/query-your-brands-ai-visibility-data-from-claude-or-chatgpt-with-the-georankers-ai-mcp-server-5d6i</guid>
      <description>&lt;p&gt;Checking how a brand shows up in AI answers usually means leaving the tool you are working in, opening a dashboard, clicking through tabs, and copying numbers back into a doc or a ticket.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://georankers.ai/" rel="noopener noreferrer"&gt;GeoRankers&lt;/a&gt; MCP server removes that round trip. You connect your GeoRankers account to Claude or ChatGPT once and then you ask questions about your brand in plain language.&lt;/p&gt;

&lt;p&gt;Full disclosure: I am the founder of GeoRankers, so this post describes our own server.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;It gives Claude or ChatGPT read-only access to analytics GeoRankers has already computed for your products.&lt;/li&gt;
&lt;li&gt;You connect it with a Personal Access Token that you create in the dashboard.&lt;/li&gt;
&lt;li&gt;It reads results from past analysis runs. It does not run a new analysis when you ask.&lt;/li&gt;
&lt;li&gt;The data is brand level and aggregate, so read it as a directional signal.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What can you ask it?
&lt;/h2&gt;

&lt;p&gt;You do not need to know any tool names. You ask in normal language and the assistant looks up the answer from your GeoRankers data. &lt;/p&gt;

&lt;p&gt;Here are the kinds of questions it is built for -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What products do I have in GeoRankers?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Which keywords am I tracking for this product, and what search
queries are predicted for each one?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Summarize my latest visibility score and share of voice in a
short table.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;How has my score changed over the last several runs? Are those
runs comparable with each other?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are examples of what you can ask, not recorded sessions. Behind the scenes the server exposes eight read-only tools covering your applications, products, keywords, latest analytics, trends over time, and plan information. The assistant picks the right ones, so you never have to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do comparable runs matter?
&lt;/h2&gt;

&lt;p&gt;Two analysis runs are not always measuring the same thing. If the method or the set of platforms changed between them, a higher or lower score may not be a real change in your visibility. The trend data flags whether each run is comparable with the previous one, so ask for that when you ask about change over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you connect it?
&lt;/h2&gt;

&lt;p&gt;Access requires an existing GeoRankers account. In the dashboard, open the Developers and API page and generate a Personal Access Token. You choose a name and an expiry of 30 days, 90 days, 180 days, one year, or no expiry. A shorter expiry is the safer default.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude
&lt;/h3&gt;

&lt;p&gt;Claude connects through a custom connector. In Claude on the web, open your profile menu, go to Customize, then Connectors, and add a custom connector named GeoRankers. For the remote server URL, use this form with your own host and token:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://&amp;lt;mcp-host&amp;gt;/sse?token=&amp;lt;your-token&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The dashboard shows the exact URL for your account with the token filled in. The token is part of that URL, so treat the whole thing like a password. Do not paste it into tickets, chats or screenshots, and revoke the token from the dashboard if it leaks.&lt;/p&gt;

&lt;h3&gt;
  
  
  ChatGPT
&lt;/h3&gt;

&lt;p&gt;ChatGPT connects through a custom GPT. Create one, add an action, and import the schema from &lt;code&gt;https://&amp;lt;mcp-host&amp;gt;/openapi.json&lt;/code&gt;. Set authentication to an API key of type Bearer and paste your token. No client secret or login URL is needed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Other clients
&lt;/h3&gt;

&lt;p&gt;I have only described Claude and ChatGPT, because those are the two the dashboard walks you through. Other MCP clients that accept a remote server URL may work with the same endpoint, but that is untested.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does it work under the hood?
&lt;/h2&gt;

&lt;p&gt;If you want to know what the assistant is actually calling, there are eight tools and every one of them is a read.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;list_applications&lt;/code&gt; returns the applications your account can access. Everything else starts from an application ID.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;list_products&lt;/code&gt; returns the products under one application.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_product&lt;/code&gt; returns details for a single product.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_product_keywords&lt;/code&gt; returns the tracked keywords for a product along with the predicted search queries tied to them.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_product_analytics&lt;/code&gt; returns the latest computed analytics, including visibility score, share of voice and brand performance.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_analytics_trend&lt;/code&gt; returns historical results, so you can see how scores moved across runs.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_current_subscription&lt;/code&gt; and &lt;code&gt;get_subscription_plans&lt;/code&gt; return plan and usage information.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two response fields are worth knowing if you pipe this data into a script.&lt;/p&gt;

&lt;p&gt;The trend data carries a &lt;code&gt;comparable_with_previous&lt;/code&gt; flag, with a list of reasons when it is false. In analytics results, &lt;code&gt;geo_score&lt;/code&gt; can be null, and a &lt;code&gt;status&lt;/code&gt; field explains why. The documented values are &lt;code&gt;ok&lt;/code&gt;, &lt;code&gt;insufficient_data&lt;/code&gt;, &lt;code&gt;incomplete_coverage&lt;/code&gt;, &lt;code&gt;scoring_quality_issue&lt;/code&gt; and &lt;code&gt;legacy_unavailable&lt;/code&gt;, so branch on &lt;code&gt;status&lt;/code&gt; before you use the score.&lt;/p&gt;

&lt;p&gt;Tokens start with &lt;code&gt;pat_&lt;/code&gt;, the server rejects anything else, and permissions are set per resource for products, analytics and account. Today every tool needs only read.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the limits?
&lt;/h2&gt;

&lt;p&gt;The data is brand level and aggregate. It is not per user, per account or per prospect and it should not be read that way. It also does not claim to match what any one person sees in the ChatGPT or Gemini apps, because answers vary by session, location and time. Use scores and mention rates to track movement across comparable runs and not to assert an exact position.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does GeoRankers expose this over MCP?
&lt;/h2&gt;

&lt;p&gt;GeoRankers approaches AI visibility around what it calls answer stability - how often a brand appears across repeated runs of the same buyer question, read together with the sources behind each answer. One run can mislead and a pattern across many runs is harder to dismiss. Putting that data in your assistant keeps it close to where you already do your analysis. &lt;/p&gt;

&lt;p&gt;For background on the thinking, see the &lt;a href="https://georankers.ai/geo-guide" rel="noopener noreferrer"&gt;GeoRankers guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can it run a fresh analysis for me?
&lt;/h3&gt;

&lt;p&gt;No. It only reads results from analysis runs that already happened.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is it safe to put the token in a URL?
&lt;/h3&gt;

&lt;p&gt;It works, but anyone with the URL can read your data, so keep it private, use a short expiry, and revoke the token if it leaks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I see visibility for a specific prospect or account?
&lt;/h3&gt;

&lt;p&gt;No. The data is brand level and aggregate.&lt;/p&gt;

&lt;h2&gt;
  
  
  A question for you
&lt;/h2&gt;

&lt;p&gt;If you track how often a brand appears in AI answers, how many repeated runs of the same question do you need before a mention rate means anything to you, and what made you settle on that number?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>seo</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
