Tengence GEO Agent
GEO/SEO content production & publishing engine — full-pipeline automation from
content planning → writing & ingest → gate checks → WordPress publishing →
search submission → GEO monitoring. Three usage modes: CLI / MCP (AI clients) /
built-in agent runtime loop. Default storage is a single-file multi-tenant SQLite
(auto-initialized) with optional MySQL; designed for open source and multi-site use.
AI clients (any MCP-capable harness)
│ MCP (stdio or Streamable HTTP + Bearer)
▼
@tengence/geo-mcp 29 tools (workspace/site/article/check/publish/plan/image/monitor/db/search/diagnose/util/standards)
▼
@tengence/geo-cli 21 tengence-geo-* commands
▼
@tengence/geo-sdk 15-domain capability layer (site/db/wp/content/images/search/…)
▼
SQLite (auto-init) or MySQL (tengence_geo_*, isolated from prod tengence_omni_*)
Packages (monorepo)
@tengence/geo-sdk | Library | 15-domain capability layer, lazy-loaded, single require entry |
@tengence/geo-cli | CLI | 21 bins (ingest / gate / publish / images / submission / monitor / plan) |
@tengence/geo-mcp | MCP Server | 29 tools, stdio + HTTP dual transport, Bearer auth |
@tengence/geo-agent | Agent launcher | Runs once DEEPSEEK_API_KEY is set (HARNESS=dsh|opencode|pi) |
Quick start
npm install
cp -R examples/site-template ~/tengence/sites/my-site
cd ~/tengence/sites/my-site && cp .env.example .env
export SITES_ROOT=~/tengence/sites
tengence-geo-article-ingest hello-geo ./hello-geo.md --site my-site --research ./hello-geo.research.md
tengence-geo-check-article hello-geo --site my-site
node packages/geo-mcp/bin/geo-mcp.js
GEO_MCP_TOKEN=sk-xxx node packages/geo-mcp/bin/geo-mcp-http.js
export DEEPSEEK_API_KEY=sk-xxx
npx -y @tengence/geo-agent
Full onboarding: docs/getting-started.md.
Documentation
Development & verification
npm run build
npm test
npm run geo:sdk-smoke
Security boundaries
- Secrets live only in
SITES_ROOT/<site>/.env (gitignored); the repo ships only the .env.example template.
- The production MySQL (
tengence_omni_*) is never written by this repo; the new repo uniformly uses tengence_geo_*.
- The MCP HTTP transport requires
GEO_MCP_TOKEN (Bearer).
License
MIT