Parzley MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Parzley MCP Serverstart filling the job application form with shortcode X7K9L"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Parzley MCP Server
Exposes the Parzley AI Form Filling Agent API as an MCP server β enabling Claude Desktop, Claude.ai, and any MCP-compatible client to interact with Parzley natively via natural language.
Requires Python 3.13+ (see pyproject.toml).
Quick start
1. Install the package
From the repository root (use a virtual environment):
pip install .Or with uv:
uv syncDependencies: fastmcp, httpx (declared in pyproject.toml).
If you change pyproject.toml dependencies, run uv lock and commit the updated uv.lock. Hosts that run uv sync --locked (e.g. Railway Railpack) will fail until the lockfile matches.
Related MCP server: mcp-server-dashform
Connecting to Claude Desktop (local / stdio)
The server entry point is main.py (not the legacy commented parzley_mcp_server.py).
Add the following to your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"parzley": {
"command": "python",
"args": ["C:/path/to/Parzley_MCP/main.py"]
}
}
}Note: Use the full path to your clone of this repo.
commandmust be a Python 3.13+ interpreter (where python/which python3). On Windows, forward slashes inargsare fine.
Restart Claude Desktop completely (quit fully, then reopen). The Parzley tools will appear as a π§ hammer icon in the chat input bar.
Connecting to Claude.ai (remote)
Streamable HTTP (recommended; works through Cloudflare) β endpoint /mcp:
python main.py --transport http --port 8001Then in Claude.ai β Settings β Integrations β Add MCP Server:
URL:
https://your-domain.com:8001/mcp
SSE (legacy; some setups need Cloudflare proxy adjustments) β endpoint /sse:
python main.py --transport sse --port 8001URL:
https://your-domain.com:8001/sse
Railway (or any PaaS)
Deploy is not configured in-repo β set this in your hostβs UI (example for Railway):
Builder: Nixpacks (or Railpack), not Dockerfile unless you add your own
Dockerfile.Install: Let Nixpacks auto-detect
pyproject.toml, or use a custom install step such aspython -m pip install .from the repo root.Start command:
python main.py --transport http --host 0.0.0.0Port: The platform sets
PORT(e.g. 8080).main.pyreadsPORTfrom the environment so you do not need--portin the start command.
MCP URL: https://<your-app>/mcp (HTTPS on the host; no port in the URL for a default HTTPS setup).
If deploy still says βBuild imageβ or Docker, switch the service off Dockerfile builder in settings β this repo does not ship a Dockerfile.
Available tools (9 total)
Tool | Description |
| Resolve a shortcode and start a new form-filling session. Must be called first. |
| Single MCP call that runs |
| Link name + email to the session. Optional in chat β strongly recommended so the user can open and manage their answers in the Parzley web app (browser access is tied to that email). Call after the first successful |
| Fetch the full form definition ( |
| Fetch field values already saved for a |
| Feedback on form data quality, gaps, and validation for the session (errors and shortfalls vs concierge βwhat to ask nextβ). |
| Final submission (locks the form); use the 6-character session |
| Upload a file (PDF or image) to extract raw text / vision description via LlamaParse or VisionAgent (Groq). |
| Upload a file and analyse its content against a user query to map data to form fields. |
Session flow
User provides shortcode
β
βΌ
get_form_with_shortcode(shortcode)
ββ returns session_id + crew_shortcode
β
βΌ
On EVERY user message:
parzley_message_turn(session_id, β¦) β MCP tool; runs concierge_chat + chat_with_agents in parallel
β
βΌ
get_form_data_feedback(session_id)
ββ returns structured document outputShortcode types
Length | Role | Behaviour |
5 chars | Crew / empty template | Identifies the empty form for that crew; |
6 chars | Session + saved data | Identifies a specific form instance and answers. Resolved via the API to |
File upload tools
Both extract_content and analyse_content accept files as base64-encoded strings
and send them to Parzley as multipart/form-data with the raw binary.
extract_content β required fields:
Field | Type | Description |
| string | Base64-encoded file contents |
| string | Original filename with extension (e.g. |
| string | Session ID from |
| string | Form ID to extract content for |
analyse_content β required + optional fields:
Field | Type | Required | Description |
| string | β | Base64-encoded file contents |
| string | β | Original filename with extension |
| string | β | Session ID from |
| string | β | Query describing what to extract / analyse |
| string | β | Form ID to analyse content against |
| string | β | Specific field to target for extraction |
Typical Claude conversation
Once connected, try:
"I'd like to fill a form"
Claude will:
Ask for your shortcode
Call
get_form_with_shortcodewith the shortcode you provideStore
session_idandcrew_shortcodefor the sessionCall
parzley_message_turnon every message (it runs the concierge + agent APIs in parallel)Guide you through the form question by question
Call
get_form_data_feedbackwhen you need structured feedback on data quality / gaps
Smoke test (optional)
After install:
python -m unittest tests.test_smoke -vNotes
Timeouts: File upload tools (
extract_content,analyse_content) use a 120-second timeout. All other tools use 60 seconds.Parallel calls: The
parzley_message_turntool invokes both HTTP endpoints together; do not call them separately from MCP.
Troubleshooting
Problem | Fix |
Tools don't appear in Claude | Check the config file path, quit and fully reopen Claude Desktop |
| Run |
Server crashes on start | Run |
502 on Railway / reverse proxy | Confirm |
File upload fails | Ensure the file is properly base64-encoded and |
Client says | The server registers all 9 tools (see |
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/l3admin/Parzley_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server