OpenSEO review: costs, MCP reporting and what to test

A source-based review of OpenSEO v0.1.7, hosted credits, SERP rank definitions and AI visibility, with a practical evaluation worksheet.

Sonar the Answer Whale inspects an open SEO toolbox containing Docker, an API key, pay as you go meter, rank chart, backlink, keyword, and MCP parts.

Verdict: test the workflow before replacing your SEO suite

OpenSEO is worth evaluating if you want a self-hostable SEO workspace and an AI agent that can work with your search data. Its open-source code gives you control over the application; keyword, backlink, and other commercial search data still come from DataForSEO. A downloadable application is not a downloadable replacement for another vendor’s web index.

The useful question is whether OpenSEO can complete your particular reporting or research job at an acceptable total cost. This review examines its source code and documentation, including the September 2 v0.1.7 release. No paid DataForSEO account was connected for this update, and no live accuracy, uptime, or client-workflow benchmark was run.

What this review checked

The September 6 review checked the official pricing page, release notes, MIT license, hosting instructions, and selected implementation files at commit 3632f40, dated September 3. That is a main-branch snapshot, not a claim that every hosted account runs the same commit.

The inspection followed three paths: how SERP results become MCP output, how the rank tracker chooses a position, and how Search Console metrics are exposed to agents. A small local fixture checked the two rank-selection expressions with four synthetic inputs. It did not execute the OpenSEO application or contact Google. Repository file counts and social engagement have been removed from the evaluation because neither establishes product quality.

What v0.1.7 changes for publishers

The September 2 release notes describe deeper SERP retrieval on demand and fixes for Discover and Google News reports through MCP. They also report fixes for tool-heavy SAM responses, older-browser blank pages, empty Google results, and temporary data failures. These are maintainer-reported fixes, not independently reproduced reliability results.

For an existing user, the best upgrade check is to repeat a previously failing report with the same property, date range, and filters. Confirm the returned rows, not merely that the agent now produces a fluent answer.

The previous v0.1.6 release added shared project context, Google Analytics tools, and beta skills inside SAM, the in-app assistant. Those capabilities predate the original August 29 review; they should not be presented as September launches.

Hosted pricing and self-hosting are different budgets

As checked September 6, the hosted plan costs $10 per month and includes $10 of monthly usage. Included credits reset each billing cycle; purchased top-ups do not expire. An active subscription is required to use the hosted service. The page lists a $0.50 trial and says Search Console data does not consume usage credits.

The repository describes a 28% markup on hosted DataForSEO requests. Do not add that markup a second time to prices already shown by OpenSEO’s estimator. Its pricing code applies the markup before converting request cost into credits.

Costs to include in an OpenSEO evaluation
Operating modelBudgetImportant limit
HostedSubscription, usage beyond the included allowance, and any separate AI-client costs.The base fee includes usage; it is not automatically added on top of every dollar consumed.
Self-hostedDataForSEO, infrastructure, maintenance, and optional AI-provider usage.Open-source licensing does not make external data or operations free.

AI checks deserve their own budget line. OpenSEO’s estimator labels a ChatGPT brand check at about $1.09, compared with about $0.05 for a typical keyword search. Those are vendor estimates for different operations, not equivalent units or measured costs from this review.

For self-hosting, the setup guide lists $1 in DataForSEO test credit and a $50 minimum top-up. That is a funding threshold, not an expected monthly bill; confirm current provider terms before paying. The Docker guide also requires an OpenRouter key for AI features such as SAM, a separate dependency missing from the earlier cost discussion.

Deeper SERP checks can repeat paid work

The inspected get_serp_results tool accepts one to ten queries per call and a depth between 10 and 100 in increments of ten. The default is 20. Its underlying request code sets desktop and Windows for this lookup, so it should not be described as a mobile check.

The tool description estimates roughly five credits per keyword at depth 20 and another 2.5 for each extra ten. More importantly, a deeper request starts again at the top rather than fetching only the missing tail. Asking an agent for 20 results and then 100 can involve two crawls, not one progressively extended result.

Set the required depth, market, and budget before a batch. Save useful output yourself: this MCP tool says it does not save results to OpenSEO. Inspect each query’s success flag, because one failed query does not fail the entire batch.

The same result can produce two different rank numbers

A source-level difference deserves attention before using OpenSEO for client reports. The MCP SERP mapper prefers rank_absolute, falling back to rank_group. The rank tracker first finds a matching organic result and prefers rank_group, falling back to the absolute value.

For a synthetic organic result with absolute rank 9 and group rank 3, the two inspected expressions return 9 and 3 respectively. Both expressions also returned the expected fallback or null in three additional synthetic cases. This is a reproducible field-mapping check, not evidence that a real website changed position.

Position fields should not be merged without a definition
SurfaceInspected behaviorReporting action
MCP SERP lookupAbsolute rank takes precedence.Label the returned field and retain result type, market, and depth.
Rank trackerOrganic group rank takes precedence for the matching domain.Compare like-for-like tracking runs, not an unlabeled MCP number.
Search ConsoleThe performance tool describes position as an average.Keep it separate from a single sampled SERP position.

This does not establish a product defect. It establishes a reason to check metric definitions before an agent combines outputs into one ranking chart.

Search Console access may be the better starting point

For a publisher, an agent working with the site’s own performance data may be more useful than another broad competitor overview. The Search Console tool is described as read-only and credit-free. Its contract says CTR is a fraction, dates use Pacific Time, and recent data may be incomplete.

The updated schema allows position to be absent for discover and googleNews. Missing position is not zero position or a failed report. Preserve the selected search type and do not force every report into a Web-search template.

Try one concrete question: which pages gained impressions over a matched period without gaining clicks? Compare the tool’s output with the same native Search Console report before trusting a recurring summary. On self-hosted installations, Google authorization requires additional configuration; a working DataForSEO key alone does not connect a Search Console property.

An AI mention is not an analytics visit

The AI-data adapter calls DataForSEO’s LLM-mention endpoints with a target, platform, location, and language. That establishes where those inputs go; it does not establish universal coverage of ChatGPT users or a count of visits to your website.

Evaluate three separate outcomes: whether the selected sample mentions the brand, whether it cites a relevant page, and whether analytics records a referral or conversion. An answer can mention you without linking, or link without producing a visit. Keep prompt/model details and collection dates with any comparison instead of collapsing everything into one visibility score.

Self-hosting still needs an access boundary

The Docker quickstart uses AUTH_MODE=local_noauth. Its documentation requires your own authenticated reverse proxy, tunnel, or private network before exposure. Changing a permitted hostname is not a substitute for authentication.

The same guide documents aggregate telemetry and opt-out variables OPENSEO_TELEMETRY_DISABLED=1 and DO_NOT_TRACK=1. Those are the project’s stated collection rules; this update did not run a network-traffic audit.

The MCP documentation says a personal API key lets an agent act as its owner in the workspace. Decide which projects and tools the agent may use, require approval for writes or broad paid requests, and verify the actual restrictions. A suggested prompt budget is not proof of an enforced spending cap.

Who should test it, and who should wait?

A technically comfortable solo publisher has a clear trial path: one domain, a small keyword set, and a Search Console reporting task. A small agency should add client-separation, export, recurring-cost, and recovery checks before relying on it. For a nontechnical marketer, hosted access avoids running the application but still requires understanding credits and connected accounts.

Keep your existing suite if a required export, historical dataset, team control, or support commitment remains unverified. Native Search Console is the first comparison for owned-site reporting; your current paid suite is the comparison for a specific competitor or backlink task. This review has not established full feature or data parity with Semrush or Ahrefs.

Run a small acceptance test

Download the OpenSEO evaluation worksheet (CSV). It contains planned checks, not observed product results. Replace the illustrative row marked EXAMPLE-REMOVE, then record your version, market, inputs, evidence location, cost, decision, owner, and recheck date. Do not put credentials, client secrets, or private prompts in a shared copy.

  1. Pin the version and establish a private or authenticated environment.
  2. Compare one completed keyword/SERP task with a saved reference, keeping device, market, depth, and rank definition explicit.
  3. Reconcile one Search Console report with native output using matching dates and filters.
  4. Check mixed-success responses and preserve errors separately from valid empty results.
  5. Record actual data and AI-provider spend, exports, and time spent maintaining the setup.
  6. Before client use, demonstrate backup recovery and the required account boundaries.

The decision remains a controlled trial, not an automatic replacement. Use the Tools & Workflows library for related evaluations and the checklist library for the publishing tasks your chosen tools need to support.

Update and review limits

Updated September 6, 2026: added v0.1.7 reporting changes, clarified included hosted credits and the extra AI-provider dependency, inspected SERP depth and rank-field handling, and added an evaluation worksheet. The August 29 publication date is preserved. The previous article’s statement that the hosted service cost $10 per month was incomplete without the included-usage explanation.

No paid access or vendor credentials were supplied for this update. Links added here are not affiliate links. The conclusions are based on public documentation, source inspection, and the explicitly labeled synthetic mapping check; they are not a hands-on accuracy rating. Recheck pricing and release notes before adopting the tool, and reassess the verdict after a credentialed workflow trial.

Keep learning

Continue this topic

Community discussion

Discuss: OpenSEO review: costs, MCP reporting and what to test

Have a question, a useful example, or a different perspective? Join the discussion, share evidence, and help other readers reach a better answer.

0 replies Moderated
No replies yet.

Be the first to ask a focused question, share a practical example, or add useful evidence.

Ask a question or join the discussion

Share evidence, a useful example, or a clear question. Be specific, stay on topic, and challenge ideas without attacking people. First-time replies may be held for moderation.