cited-cli 0.3.2__tar.gz → 0.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cited_cli-0.3.2/README.md → cited_cli-0.3.4/PKG-INFO +105 -0
- cited_cli-0.3.2/PKG-INFO → cited_cli-0.3.4/README.md +84 -21
- {cited_cli-0.3.2 → cited_cli-0.3.4}/cited-plugins/.claude-plugin/marketplace.json +1 -1
- cited_cli-0.3.4/cited-plugins/.mcp.json +8 -0
- cited_cli-0.3.4/cited-plugins/CLAUDE_DESKTOP_SETUP.md +69 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/core/pyproject.toml +1 -1
- cited_cli-0.3.4/packages/core/src/cited_core/__init__.py +1 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/core/src/cited_core/api/endpoints.py +1 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/core/src/cited_core/config/constants.py +6 -0
- cited_cli-0.3.4/packages/mcp/Dockerfile +14 -0
- cited_cli-0.3.4/packages/mcp/README.md +204 -0
- cited_cli-0.3.4/packages/mcp/SKILL.md +54 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/mcp/pyproject.toml +5 -2
- cited_cli-0.3.4/packages/mcp/src/cited_mcp/auth_provider.py +320 -0
- cited_cli-0.3.4/packages/mcp/src/cited_mcp/remote.py +159 -0
- cited_cli-0.3.4/packages/mcp/src/cited_mcp/server.py +77 -0
- cited_cli-0.3.4/packages/mcp/src/cited_mcp/tools/_helpers.py +106 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/mcp/src/cited_mcp/tools/audit.py +71 -17
- cited_cli-0.3.4/packages/mcp/src/cited_mcp/tools/auth.py +135 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/mcp/src/cited_mcp/tools/business.py +39 -8
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/mcp/src/cited_mcp/tools/job.py +5 -1
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/mcp/src/cited_mcp/tools/recommend.py +21 -5
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/mcp/src/cited_mcp/tools/solution.py +31 -7
- {cited_cli-0.3.2 → cited_cli-0.3.4}/pyproject.toml +4 -4
- cited_cli-0.3.4/scripts/deploy-mcp.sh +434 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/scripts/release.sh +4 -2
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/commands/auth.py +15 -13
- cited_cli-0.3.4/tests/conftest.py +32 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/tests/test_auth.py +28 -37
- cited_cli-0.3.4/tests/test_live_pipeline.py +224 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/tests/test_mcp_server.py +5 -2
- {cited_cli-0.3.2 → cited_cli-0.3.4}/tests/test_mcp_tools.py +113 -0
- cited_cli-0.3.2/cited-plugins/.mcp.json +0 -11
- cited_cli-0.3.2/packages/core/src/cited_core/__init__.py +0 -1
- cited_cli-0.3.2/packages/mcp/src/cited_mcp/server.py +0 -54
- cited_cli-0.3.2/packages/mcp/src/cited_mcp/tools/_helpers.py +0 -33
- cited_cli-0.3.2/packages/mcp/src/cited_mcp/tools/auth.py +0 -59
- cited_cli-0.3.2/tests/conftest.py +0 -16
- {cited_cli-0.3.2 → cited_cli-0.3.4}/.github/workflows/ci.yml +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/.github/workflows/release.yml +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/.gitignore +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/CLAUDE.md +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/DEMO.md +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/FUTURE.md +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/LICENSE +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/TEST_RUNBOOK.md +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/cited-plugins/.claude-plugin/plugin.json +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/cited-plugins/agents/geo-analyst.md +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/cited-plugins/commands/audit.md +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/cited-plugins/commands/recommend.md +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/cited-plugins/commands/status.md +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/cited-plugins/settings.json +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/cited-plugins/skills/business-setup/SKILL.md +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/cited-plugins/skills/geo-audit/SKILL.md +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/cited-plugins/skills/geo-recommend/SKILL.md +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/core/src/cited_core/api/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/core/src/cited_core/api/client.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/core/src/cited_core/auth/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/core/src/cited_core/auth/oauth_server.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/core/src/cited_core/auth/store.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/core/src/cited_core/config/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/core/src/cited_core/config/manager.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/core/src/cited_core/errors.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/mcp/src/cited_mcp/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/mcp/src/cited_mcp/__main__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/mcp/src/cited_mcp/context.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/packages/mcp/src/cited_mcp/tools/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/scripts/cleanup_dev.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/scripts/dev-install.sh +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/__main__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/api/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/api/client.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/api/endpoints.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/app.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/auth/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/auth/oauth_server.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/auth/store.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/commands/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/commands/agent.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/commands/analytics.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/commands/audit.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/commands/business.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/commands/config_cmd.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/commands/hq.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/commands/job.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/commands/mcp_cmd.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/commands/named_audit.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/commands/recommend.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/commands/solution.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/config/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/config/constants.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/config/manager.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/mcp/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/mcp/context.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/mcp/server.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/mcp/tools/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/mcp/tools/_helpers.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/mcp/tools/audit.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/mcp/tools/auth.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/mcp/tools/business.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/mcp/tools/job.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/mcp/tools/recommend.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/mcp/tools/solution.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/output/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/output/formatter.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/output/progress.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/output/tables.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/utils/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/utils/errors.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/src/cited_cli/utils/interactive.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/tests/__init__.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/tests/test_api_client.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/tests/test_config.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/tests/test_output.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/tests/test_pipeline.py +0 -0
- {cited_cli-0.3.2 → cited_cli-0.3.4}/tests/test_version.py +0 -0
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cited-cli
|
|
3
|
+
Version: 0.3.4
|
|
4
|
+
Summary: CLI for the Cited GEO platform
|
|
5
|
+
Author-email: Cited <support@youcited.com>
|
|
6
|
+
License-Expression: LicenseRef-Proprietary
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Requires-Python: >=3.11
|
|
9
|
+
Requires-Dist: cited-core>=0.3.4
|
|
10
|
+
Requires-Dist: rich>=13.0.0
|
|
11
|
+
Requires-Dist: typer>=0.15.0
|
|
12
|
+
Provides-Extra: dev
|
|
13
|
+
Requires-Dist: cited-mcp>=0.3.4; extra == 'dev'
|
|
14
|
+
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
15
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
16
|
+
Requires-Dist: respx>=0.21; extra == 'dev'
|
|
17
|
+
Requires-Dist: ruff>=0.4; extra == 'dev'
|
|
18
|
+
Provides-Extra: mcp
|
|
19
|
+
Requires-Dist: cited-mcp>=0.3.4; extra == 'mcp'
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
1
22
|
# Cited CLI
|
|
2
23
|
|
|
3
24
|
Command-line interface for the [Cited](https://youcited.com) GEO (Generative Engine Optimization) platform. Audit how often your business is cited by AI assistants, generate recommendations, and produce AI-ready content solutions — all from the terminal or a Python script.
|
|
@@ -71,6 +92,90 @@ cited register --email you@example.com --name "Your Name" --password "Secret123!
|
|
|
71
92
|
|
|
72
93
|
---
|
|
73
94
|
|
|
95
|
+
## MCP Server
|
|
96
|
+
|
|
97
|
+
This repo also includes `cited-mcp`, a [Model Context Protocol](https://modelcontextprotocol.io/) server that exposes 28 tools for AI assistants like Claude. It lets Claude manage businesses, run GEO audits, generate recommendations, and create solutions on your behalf.
|
|
98
|
+
|
|
99
|
+
### Claude Desktop (remote — recommended)
|
|
100
|
+
|
|
101
|
+
No local install required. Add this to your Claude Desktop config (`Settings → Developer → Edit Config`):
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"mcpServers": {
|
|
106
|
+
"cited": {
|
|
107
|
+
"command": "npx",
|
|
108
|
+
"args": ["mcp-remote", "https://mcp.youcited.com/mcp"]
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Restart Claude Desktop. A browser window will open for authentication on first use.
|
|
115
|
+
|
|
116
|
+
> **Prerequisite:** [Node.js](https://nodejs.org) (LTS) must be installed for `npx`.
|
|
117
|
+
|
|
118
|
+
### Claude Desktop (local stdio)
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"mcpServers": {
|
|
123
|
+
"cited": {
|
|
124
|
+
"command": "uvx",
|
|
125
|
+
"args": ["cited-mcp"],
|
|
126
|
+
"env": {
|
|
127
|
+
"CITED_TOKEN": "your-jwt-token"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Get your token with `cited login` then `cited auth token`.
|
|
135
|
+
|
|
136
|
+
### Cursor
|
|
137
|
+
|
|
138
|
+
Add a `.cursor/mcp.json` file to your project root (or `~/.cursor/mcp.json` for global access):
|
|
139
|
+
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"mcpServers": {
|
|
143
|
+
"cited": {
|
|
144
|
+
"command": "npx",
|
|
145
|
+
"args": ["mcp-remote", "https://mcp.youcited.com/mcp"]
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Verify Node.js is installed (`node --version`), or install with `brew install node`.
|
|
152
|
+
|
|
153
|
+
Open Settings (`Cmd+,`) → search "MCP" → verify the server shows a green status. Use tools in Composer (Agent mode).
|
|
154
|
+
|
|
155
|
+
### Example
|
|
156
|
+
|
|
157
|
+
Once connected, ask Claude something like:
|
|
158
|
+
|
|
159
|
+
> "List my businesses, then run a GEO audit on Acme Corp using the default template. When it's done, generate recommendations and show me the top insights."
|
|
160
|
+
|
|
161
|
+
Claude will chain the tools automatically — `list_businesses` → `start_audit` → `get_audit_status` → `start_recommendation` → `get_recommendation_insights`.
|
|
162
|
+
|
|
163
|
+
### Available Tools
|
|
164
|
+
|
|
165
|
+
| Category | Tools |
|
|
166
|
+
|----------|-------|
|
|
167
|
+
| **Auth** | `check_auth_status`, `login` |
|
|
168
|
+
| **Businesses** | `list_businesses`, `get_business`, `create_business`, `update_business`, `delete_business`, `crawl_business`, `get_health_scores` |
|
|
169
|
+
| **Audit Templates** | `list_audit_templates`, `get_audit_template`, `create_audit_template`, `update_audit_template`, `delete_audit_template` |
|
|
170
|
+
| **Audits** | `start_audit`, `get_audit_status`, `get_audit_result`, `list_audits` |
|
|
171
|
+
| **Recommendations** | `start_recommendation`, `get_recommendation_status`, `get_recommendation_result`, `get_recommendation_insights`, `list_recommendations` |
|
|
172
|
+
| **Solutions** | `start_solution`, `get_solution_status`, `get_solution_result`, `list_solutions` |
|
|
173
|
+
| **Jobs** | `get_job_status` |
|
|
174
|
+
|
|
175
|
+
See [`packages/mcp/README.md`](packages/mcp/README.md) for full details, environment variables, and development instructions.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
74
179
|
## Global Flags
|
|
75
180
|
|
|
76
181
|
These flags apply to every command and must be placed immediately after `cited`:
|
|
@@ -1,24 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: cited-cli
|
|
3
|
-
Version: 0.3.2
|
|
4
|
-
Summary: CLI for the Cited GEO platform
|
|
5
|
-
Author-email: Cited <support@youcited.com>
|
|
6
|
-
License-Expression: LicenseRef-Proprietary
|
|
7
|
-
License-File: LICENSE
|
|
8
|
-
Requires-Python: >=3.11
|
|
9
|
-
Requires-Dist: cited-core>=0.3.2
|
|
10
|
-
Requires-Dist: rich>=13.0.0
|
|
11
|
-
Requires-Dist: typer>=0.15.0
|
|
12
|
-
Provides-Extra: dev
|
|
13
|
-
Requires-Dist: cited-mcp>=0.3.2; extra == 'dev'
|
|
14
|
-
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
15
|
-
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
16
|
-
Requires-Dist: respx>=0.21; extra == 'dev'
|
|
17
|
-
Requires-Dist: ruff>=0.4; extra == 'dev'
|
|
18
|
-
Provides-Extra: mcp
|
|
19
|
-
Requires-Dist: cited-mcp>=0.3.2; extra == 'mcp'
|
|
20
|
-
Description-Content-Type: text/markdown
|
|
21
|
-
|
|
22
1
|
# Cited CLI
|
|
23
2
|
|
|
24
3
|
Command-line interface for the [Cited](https://youcited.com) GEO (Generative Engine Optimization) platform. Audit how often your business is cited by AI assistants, generate recommendations, and produce AI-ready content solutions — all from the terminal or a Python script.
|
|
@@ -92,6 +71,90 @@ cited register --email you@example.com --name "Your Name" --password "Secret123!
|
|
|
92
71
|
|
|
93
72
|
---
|
|
94
73
|
|
|
74
|
+
## MCP Server
|
|
75
|
+
|
|
76
|
+
This repo also includes `cited-mcp`, a [Model Context Protocol](https://modelcontextprotocol.io/) server that exposes 28 tools for AI assistants like Claude. It lets Claude manage businesses, run GEO audits, generate recommendations, and create solutions on your behalf.
|
|
77
|
+
|
|
78
|
+
### Claude Desktop (remote — recommended)
|
|
79
|
+
|
|
80
|
+
No local install required. Add this to your Claude Desktop config (`Settings → Developer → Edit Config`):
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"mcpServers": {
|
|
85
|
+
"cited": {
|
|
86
|
+
"command": "npx",
|
|
87
|
+
"args": ["mcp-remote", "https://mcp.youcited.com/mcp"]
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Restart Claude Desktop. A browser window will open for authentication on first use.
|
|
94
|
+
|
|
95
|
+
> **Prerequisite:** [Node.js](https://nodejs.org) (LTS) must be installed for `npx`.
|
|
96
|
+
|
|
97
|
+
### Claude Desktop (local stdio)
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"mcpServers": {
|
|
102
|
+
"cited": {
|
|
103
|
+
"command": "uvx",
|
|
104
|
+
"args": ["cited-mcp"],
|
|
105
|
+
"env": {
|
|
106
|
+
"CITED_TOKEN": "your-jwt-token"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Get your token with `cited login` then `cited auth token`.
|
|
114
|
+
|
|
115
|
+
### Cursor
|
|
116
|
+
|
|
117
|
+
Add a `.cursor/mcp.json` file to your project root (or `~/.cursor/mcp.json` for global access):
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
{
|
|
121
|
+
"mcpServers": {
|
|
122
|
+
"cited": {
|
|
123
|
+
"command": "npx",
|
|
124
|
+
"args": ["mcp-remote", "https://mcp.youcited.com/mcp"]
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Verify Node.js is installed (`node --version`), or install with `brew install node`.
|
|
131
|
+
|
|
132
|
+
Open Settings (`Cmd+,`) → search "MCP" → verify the server shows a green status. Use tools in Composer (Agent mode).
|
|
133
|
+
|
|
134
|
+
### Example
|
|
135
|
+
|
|
136
|
+
Once connected, ask Claude something like:
|
|
137
|
+
|
|
138
|
+
> "List my businesses, then run a GEO audit on Acme Corp using the default template. When it's done, generate recommendations and show me the top insights."
|
|
139
|
+
|
|
140
|
+
Claude will chain the tools automatically — `list_businesses` → `start_audit` → `get_audit_status` → `start_recommendation` → `get_recommendation_insights`.
|
|
141
|
+
|
|
142
|
+
### Available Tools
|
|
143
|
+
|
|
144
|
+
| Category | Tools |
|
|
145
|
+
|----------|-------|
|
|
146
|
+
| **Auth** | `check_auth_status`, `login` |
|
|
147
|
+
| **Businesses** | `list_businesses`, `get_business`, `create_business`, `update_business`, `delete_business`, `crawl_business`, `get_health_scores` |
|
|
148
|
+
| **Audit Templates** | `list_audit_templates`, `get_audit_template`, `create_audit_template`, `update_audit_template`, `delete_audit_template` |
|
|
149
|
+
| **Audits** | `start_audit`, `get_audit_status`, `get_audit_result`, `list_audits` |
|
|
150
|
+
| **Recommendations** | `start_recommendation`, `get_recommendation_status`, `get_recommendation_result`, `get_recommendation_insights`, `list_recommendations` |
|
|
151
|
+
| **Solutions** | `start_solution`, `get_solution_status`, `get_solution_result`, `list_solutions` |
|
|
152
|
+
| **Jobs** | `get_job_status` |
|
|
153
|
+
|
|
154
|
+
See [`packages/mcp/README.md`](packages/mcp/README.md) for full details, environment variables, and development instructions.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
95
158
|
## Global Flags
|
|
96
159
|
|
|
97
160
|
These flags apply to every command and must be placed immediately after `cited`:
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Setting Up Cited for Claude Desktop
|
|
2
|
+
|
|
3
|
+
This guide walks you through connecting Claude Desktop to the Cited GEO platform. Once set up, you can ask Claude to audit your business's AI search presence, generate recommendations, and create solutions — all through conversation.
|
|
4
|
+
|
|
5
|
+
## What You Need
|
|
6
|
+
|
|
7
|
+
- **Claude Desktop** app installed
|
|
8
|
+
- **A Cited account** at [youcited.com](https://youcited.com)
|
|
9
|
+
- **Node.js** installed (download from [nodejs.org](https://nodejs.org))
|
|
10
|
+
|
|
11
|
+
## Step 1: Configure Claude Desktop
|
|
12
|
+
|
|
13
|
+
1. Open Claude Desktop
|
|
14
|
+
2. Click the **Claude** menu (top-left on Mac, top bar on Windows)
|
|
15
|
+
3. Click **Settings**
|
|
16
|
+
4. Click **Developer** in the left sidebar
|
|
17
|
+
5. Click **Edit Config**
|
|
18
|
+
|
|
19
|
+
This opens `claude_desktop_config.json`. Add the `mcpServers` section:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"mcpServers": {
|
|
24
|
+
"cited": {
|
|
25
|
+
"command": "npx",
|
|
26
|
+
"args": ["mcp-remote", "https://mcp.youcited.com"]
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Save the file and close the text editor.
|
|
33
|
+
|
|
34
|
+
## Step 2: Restart Claude Desktop
|
|
35
|
+
|
|
36
|
+
Quit Claude Desktop completely (Cmd+Q on Mac, or close fully on Windows), then reopen it.
|
|
37
|
+
|
|
38
|
+
## Step 3: Try It Out
|
|
39
|
+
|
|
40
|
+
Start a new conversation in Claude Desktop and try any of these:
|
|
41
|
+
|
|
42
|
+
- **"List my businesses"** — shows all your businesses on Cited
|
|
43
|
+
- **"Run a GEO audit on [business name]"** — audits your AI search presence
|
|
44
|
+
- **"Check my Cited account status"** — verifies you're connected
|
|
45
|
+
|
|
46
|
+
On first use, your browser will open to log in to your Cited account. After logging in, you'll be redirected back automatically. This only happens once.
|
|
47
|
+
|
|
48
|
+
## Troubleshooting
|
|
49
|
+
|
|
50
|
+
**Browser login popup doesn't appear:**
|
|
51
|
+
- Make sure Node.js is installed: open a terminal and type `node --version`
|
|
52
|
+
- Make sure you saved the config file correctly
|
|
53
|
+
- Restart Claude Desktop fully (not just close the window)
|
|
54
|
+
|
|
55
|
+
**"npx not found" error:**
|
|
56
|
+
- Install Node.js from [nodejs.org](https://nodejs.org) (LTS version recommended)
|
|
57
|
+
- Restart Claude Desktop after installing Node.js
|
|
58
|
+
|
|
59
|
+
## What Can Claude Do With Cited?
|
|
60
|
+
|
|
61
|
+
Once connected, Claude can:
|
|
62
|
+
|
|
63
|
+
- **List and manage your businesses** — view, create, update, or delete businesses
|
|
64
|
+
- **Run GEO audits** — check how your business appears in AI search results (ChatGPT, Perplexity, Gemini, etc.)
|
|
65
|
+
- **Generate recommendations** — get actionable insights to improve your AI search visibility
|
|
66
|
+
- **Create solutions** — detailed implementation steps for each recommendation
|
|
67
|
+
- **Check health scores** — see your overall GEO health at a glance
|
|
68
|
+
|
|
69
|
+
Just ask Claude in plain English — no commands to memorize.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.3.4"
|
|
@@ -14,6 +14,12 @@ FRONTEND_URLS: dict[str, str] = {
|
|
|
14
14
|
"local": "http://localhost:3000",
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
MCP_URLS: dict[str, str] = {
|
|
18
|
+
"prod": "https://mcp.youcited.com",
|
|
19
|
+
"dev": "https://mcpdev.youcited.com",
|
|
20
|
+
"local": "http://localhost:8080",
|
|
21
|
+
}
|
|
22
|
+
|
|
17
23
|
DEFAULT_ENV = "prod"
|
|
18
24
|
CONFIG_DIR = Path.home() / ".cited"
|
|
19
25
|
CONFIG_FILE = CONFIG_DIR / "config.toml"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
FROM python:3.12-slim
|
|
2
|
+
|
|
3
|
+
WORKDIR /app
|
|
4
|
+
|
|
5
|
+
# Install core first (dependency), then mcp
|
|
6
|
+
COPY packages/core/ /app/packages/core/
|
|
7
|
+
COPY packages/mcp/ /app/packages/mcp/
|
|
8
|
+
|
|
9
|
+
RUN pip install --no-cache-dir /app/packages/core /app/packages/mcp
|
|
10
|
+
|
|
11
|
+
ENV PORT=8080
|
|
12
|
+
EXPOSE 8080
|
|
13
|
+
|
|
14
|
+
CMD ["cited-mcp-remote"]
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# cited-mcp
|
|
2
|
+
|
|
3
|
+
MCP server for the [Cited](https://youcited.com) Generative Engine Optimization (GEO) platform. Exposes 28 tools that let AI assistants like Claude manage businesses, run GEO audits, generate recommendations, and create solutions — all through the [Model Context Protocol](https://modelcontextprotocol.io/).
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install cited-mcp
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Or run directly without installing:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
uvx cited-mcp
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
### Claude Desktop (remote server — recommended)
|
|
20
|
+
|
|
21
|
+
No local install required. Add this to your Claude Desktop config (`Settings → Developer → Edit Config`):
|
|
22
|
+
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"mcpServers": {
|
|
26
|
+
"cited": {
|
|
27
|
+
"command": "npx",
|
|
28
|
+
"args": ["mcp-remote", "https://mcp.youcited.com/mcp"]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Restart Claude Desktop. A browser window will open for authentication on first use.
|
|
35
|
+
|
|
36
|
+
> **Prerequisite:** [Node.js](https://nodejs.org) must be installed for `npx`.
|
|
37
|
+
|
|
38
|
+
### Claude Desktop (local stdio server)
|
|
39
|
+
|
|
40
|
+
If you prefer running the server locally:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"mcpServers": {
|
|
45
|
+
"cited": {
|
|
46
|
+
"command": "uvx",
|
|
47
|
+
"args": ["cited-mcp"],
|
|
48
|
+
"env": {
|
|
49
|
+
"CITED_TOKEN": "your-jwt-token"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Get your token by running `cited login` and then `cited auth token` with the [cited-cli](https://pypi.org/project/cited-cli/).
|
|
57
|
+
|
|
58
|
+
### Claude Code
|
|
59
|
+
|
|
60
|
+
Add the remote server as a tool source in your Claude Code settings or use the `cited-plugins/` configuration from the monorepo.
|
|
61
|
+
|
|
62
|
+
### Cursor
|
|
63
|
+
|
|
64
|
+
Add a `.cursor/mcp.json` file to your project root (or configure globally in `~/.cursor/mcp.json`):
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"mcpServers": {
|
|
69
|
+
"cited": {
|
|
70
|
+
"command": "npx",
|
|
71
|
+
"args": ["mcp-remote", "https://mcp.youcited.com/mcp"]
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Verify Node.js is installed first:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
node --version # should print v18+ or v20+
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
If not installed, run `brew install node` or download from [nodejs.org](https://nodejs.org).
|
|
84
|
+
|
|
85
|
+
Then in Cursor: open Settings (`Cmd+,`) → search "MCP" → verify the server appears and shows a green status indicator. Use Cited tools in Composer (Agent mode) or Chat by asking Claude to interact with your GEO data.
|
|
86
|
+
|
|
87
|
+
### Standalone
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Local stdio mode (requires CITED_TOKEN env var)
|
|
91
|
+
CITED_TOKEN=your-jwt-token cited-mcp
|
|
92
|
+
|
|
93
|
+
# Remote HTTP mode (used for hosted deployment)
|
|
94
|
+
cited-mcp-remote
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Tools
|
|
98
|
+
|
|
99
|
+
### Auth
|
|
100
|
+
| Tool | Description |
|
|
101
|
+
|------|-------------|
|
|
102
|
+
| `check_auth_status` | Check current authentication status |
|
|
103
|
+
| `login` | Authenticate via browser OAuth flow |
|
|
104
|
+
| `logout` | Clear stored authentication token |
|
|
105
|
+
|
|
106
|
+
### Businesses
|
|
107
|
+
| Tool | Description |
|
|
108
|
+
|------|-------------|
|
|
109
|
+
| `list_businesses` | List all businesses on your account |
|
|
110
|
+
| `get_business` | Get details for a specific business |
|
|
111
|
+
| `create_business` | Create a new business |
|
|
112
|
+
| `update_business` | Update business details |
|
|
113
|
+
| `delete_business` | Delete a business |
|
|
114
|
+
| `crawl_business` | Start a website crawl for a business |
|
|
115
|
+
| `get_health_scores` | Get GEO health scores for a business |
|
|
116
|
+
|
|
117
|
+
### Audit Templates
|
|
118
|
+
| Tool | Description |
|
|
119
|
+
|------|-------------|
|
|
120
|
+
| `list_audit_templates` | List all audit templates |
|
|
121
|
+
| `get_audit_template` | Get a specific template with questions |
|
|
122
|
+
| `create_audit_template` | Create a new audit template |
|
|
123
|
+
| `update_audit_template` | Update template name, description, or questions |
|
|
124
|
+
| `delete_audit_template` | Delete an audit template |
|
|
125
|
+
|
|
126
|
+
### Audits
|
|
127
|
+
| Tool | Description |
|
|
128
|
+
|------|-------------|
|
|
129
|
+
| `start_audit` | Run a GEO audit using a template |
|
|
130
|
+
| `get_audit_status` | Check audit job status |
|
|
131
|
+
| `get_audit_result` | Get completed audit results |
|
|
132
|
+
| `list_audits` | List all audits |
|
|
133
|
+
|
|
134
|
+
### Recommendations
|
|
135
|
+
| Tool | Description |
|
|
136
|
+
|------|-------------|
|
|
137
|
+
| `start_recommendation` | Generate recommendations from a completed audit |
|
|
138
|
+
| `get_recommendation_status` | Check recommendation job status |
|
|
139
|
+
| `get_recommendation_result` | Get full recommendation results |
|
|
140
|
+
| `get_recommendation_insights` | Get actionable insights with risk levels and coverage scores |
|
|
141
|
+
| `list_recommendations` | List all recommendation jobs |
|
|
142
|
+
|
|
143
|
+
### Solutions
|
|
144
|
+
| Tool | Description |
|
|
145
|
+
|------|-------------|
|
|
146
|
+
| `start_solution` | Generate a solution for a specific insight or tip |
|
|
147
|
+
| `get_solution_status` | Check solution job status |
|
|
148
|
+
| `get_solution_result` | Get completed solution with implementation steps |
|
|
149
|
+
| `list_solutions` | List all solutions |
|
|
150
|
+
|
|
151
|
+
### Jobs
|
|
152
|
+
| Tool | Description |
|
|
153
|
+
|------|-------------|
|
|
154
|
+
| `get_job_status` | Check status of any job by type and ID |
|
|
155
|
+
|
|
156
|
+
## Example Workflow
|
|
157
|
+
|
|
158
|
+
Once connected, ask Claude to run a full GEO audit:
|
|
159
|
+
|
|
160
|
+
> "List my businesses, then run a GEO audit on Acme Corp using the default template. When it's done, generate recommendations and show me the top insights."
|
|
161
|
+
|
|
162
|
+
Claude will chain the tools automatically:
|
|
163
|
+
|
|
164
|
+
1. `list_businesses` → find the business ID
|
|
165
|
+
2. `list_audit_templates` → find or create a template
|
|
166
|
+
3. `start_audit` → kick off the audit
|
|
167
|
+
4. `get_audit_status` → poll until complete
|
|
168
|
+
5. `start_recommendation` → generate recommendations
|
|
169
|
+
6. `get_recommendation_insights` → display actionable results
|
|
170
|
+
7. `start_solution` → generate implementation steps for top issues
|
|
171
|
+
|
|
172
|
+
## Environment Variables
|
|
173
|
+
|
|
174
|
+
| Variable | Description |
|
|
175
|
+
|----------|-------------|
|
|
176
|
+
| `CITED_TOKEN` | JWT auth token (stdio mode) |
|
|
177
|
+
| `CITED_AGENT_API_KEY` | Agent API key (alternative to JWT) |
|
|
178
|
+
| `CITED_API_URL` | API base URL (default: `https://api.youcited.com`) |
|
|
179
|
+
| `CITED_ENV` | Environment: `prod`, `dev`, or `local` |
|
|
180
|
+
| `MCP_URL` | Public URL of this MCP server (remote mode) |
|
|
181
|
+
| `JWT_SECRET` | Secret for signing OAuth tokens (remote mode) |
|
|
182
|
+
|
|
183
|
+
## Development
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
# Install in editable mode with dev dependencies
|
|
187
|
+
pip install -e packages/core
|
|
188
|
+
pip install -e "packages/mcp[dev]"
|
|
189
|
+
|
|
190
|
+
# Run tests
|
|
191
|
+
pytest tests/test_mcp_server.py tests/test_mcp_tools.py -v
|
|
192
|
+
|
|
193
|
+
# Lint and type check
|
|
194
|
+
ruff check packages/mcp/
|
|
195
|
+
mypy packages/mcp/src --ignore-missing-imports
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Privacy Policy
|
|
199
|
+
|
|
200
|
+
See our [Privacy Policy](https://youcited.com/privacy) for details on data collection, usage, storage, and third-party sharing.
|
|
201
|
+
|
|
202
|
+
## License
|
|
203
|
+
|
|
204
|
+
Proprietary — see [youcited.com](https://youcited.com) for terms.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cited
|
|
3
|
+
description: Audit, optimize, and monitor your business's visibility in AI-powered search engines
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Cited — AI Search Visibility Platform
|
|
7
|
+
|
|
8
|
+
Cited helps businesses measure and improve how they appear in AI-powered search results from ChatGPT, Claude, Perplexity, and Gemini. Use these tools to run GEO (Generative Engine Optimization) audits, get actionable recommendations, and generate ready-to-deploy solutions.
|
|
9
|
+
|
|
10
|
+
## Core Workflow
|
|
11
|
+
|
|
12
|
+
The typical flow is: **Business Setup → Audit → Recommendations → Solutions**
|
|
13
|
+
|
|
14
|
+
### 1. Business Setup
|
|
15
|
+
- `check_auth_status` — Verify authentication and check plan limits
|
|
16
|
+
- `list_businesses` — See existing businesses
|
|
17
|
+
- `create_business` — Add a new business (requires name, website, description)
|
|
18
|
+
- `crawl_business` — Crawl the business website to gather data for analysis
|
|
19
|
+
|
|
20
|
+
### 2. Run an Audit
|
|
21
|
+
- `create_audit_template` — Define what questions to audit (e.g., "What is [business]?", "Best [industry] tools")
|
|
22
|
+
- `start_audit` — Launch the audit using a template
|
|
23
|
+
- `get_audit_status` — Poll until the audit completes (typically 2-4 minutes)
|
|
24
|
+
- `get_audit_result` — Retrieve visibility scores, citation rates, and competitor data
|
|
25
|
+
|
|
26
|
+
### 3. Generate Recommendations
|
|
27
|
+
- `start_recommendation` — Analyze audit results and generate improvement recommendations
|
|
28
|
+
- `get_recommendation_insights` — Get structured insights with question-level analysis, competitor head-to-head comparisons, and strengthening tips. Each insight includes `source_type` and `source_id` needed for the next step.
|
|
29
|
+
|
|
30
|
+
### 4. Create Solutions
|
|
31
|
+
- `start_solution` — Generate implementation artifacts (schema markup, content templates, outreach playbooks) for a specific insight
|
|
32
|
+
- `get_solution_result` — Retrieve the solution with downloadable artifacts
|
|
33
|
+
|
|
34
|
+
## Example Prompts
|
|
35
|
+
|
|
36
|
+
**Run a full GEO audit:**
|
|
37
|
+
> "List my businesses, then run a GEO audit on [business name]. When it's done, show me my visibility scores and which competitors are being cited instead of me."
|
|
38
|
+
|
|
39
|
+
**Competitive analysis:**
|
|
40
|
+
> "Run an audit on my business for these questions: 'Best CRM software for small business', 'Top sales automation tools', 'What is [my product]?'. Then generate recommendations and show me the head-to-head comparisons with my top competitors."
|
|
41
|
+
|
|
42
|
+
**Generate solutions:**
|
|
43
|
+
> "Look at my latest audit recommendations and generate solutions for the top 3 highest-risk insights. I want to see the schema markup and content changes I need to make."
|
|
44
|
+
|
|
45
|
+
**Monitor over time:**
|
|
46
|
+
> "Show me the health scores for my business and compare them to my last audit. What has improved and what still needs work?"
|
|
47
|
+
|
|
48
|
+
## Tips
|
|
49
|
+
|
|
50
|
+
- Always call `check_auth_status` first to verify authentication and plan limits
|
|
51
|
+
- Audits take 2-4 minutes — poll `get_audit_status` every 15 seconds
|
|
52
|
+
- Use `get_recommendation_insights` (not `get_recommendation_result`) for structured, actionable data
|
|
53
|
+
- Solutions have a concurrency limit of 3 — wait for one batch to complete before starting more
|
|
54
|
+
- Each insight's `source_type` and `source_id` map directly to `start_solution` parameters
|
|
@@ -4,18 +4,21 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cited-mcp"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.4"
|
|
8
8
|
description = "MCP server for the Cited GEO platform"
|
|
9
|
+
readme = "README.md"
|
|
9
10
|
license = "LicenseRef-Proprietary"
|
|
10
11
|
requires-python = ">=3.11"
|
|
11
12
|
authors = [{ name = "Cited", email = "support@youcited.com" }]
|
|
12
13
|
dependencies = [
|
|
13
|
-
"cited-core>=0.3.
|
|
14
|
+
"cited-core>=0.3.4",
|
|
14
15
|
"mcp>=1.26.0",
|
|
16
|
+
"PyJWT>=2.8.0",
|
|
15
17
|
]
|
|
16
18
|
|
|
17
19
|
[project.scripts]
|
|
18
20
|
cited-mcp = "cited_mcp:run_server"
|
|
21
|
+
cited-mcp-remote = "cited_mcp.remote:run_remote_server"
|
|
19
22
|
|
|
20
23
|
[project.optional-dependencies]
|
|
21
24
|
dev = [
|