The RFP / brief / topic text to match against. Maximum size: 200 KB.
MCP Gateway Reference
Full developer reference for the referenzen.com MCP gateway — endpoint, authentication, scopes, and every available tool, resource, and prompt with parameters.
The MCP gateway exposes your company's reference data to AI assistants and agent frameworks via the Model Context Protocol (MCP) — an open JSON-RPC 2.0 standard supported by Claude, ChatGPT, Microsoft Copilot Studio, Cursor, n8n, LangChain, and most agent SDKs. This page is the complete technical reference: every callable tool with its parameters, all readable resources, the built-in prompts, and the error model.
For token management, scope administration, and usage monitoring in the app, see AI Access (MCP Gateway).
The gateway is read-only and strictly company-scoped: a token only ever returns data belonging to the company that issued it, and only references that are published on the API channel. The tenant filter is enforced server-side and cannot be influenced by the connected AI.
Endpoint & transport
| Endpoint | https://referenzen.com/mcp/v1 |
| Transport | MCP Streamable HTTP — JSON-RPC 2.0 over POST |
| Protocol version | 2024-11-05 |
| Content type | application/json (single request object or a JSON-RPC batch array) |
| Session | The response carries an Mcp-Session-Id header; echo it on subsequent requests. DELETE on the endpoint tears the session down. |
A server-initiated SSE channel (GET on the endpoint) is not yet available and currently responds with 501.
Authentication
Every request must present an MCP token, created by a Company Admin in the app under AI / MCP Gateway:
Bearer dby_mcp_... — the recommended way to pass your token.
Alternative to the Authorization header for clients that can only set query parameters.
Requests without a valid token receive 401 with JSON-RPC error -32001 / -32002. Expired and revoked tokens are rejected the same way.
Scopes
Each token carries a set of scopes chosen at creation time. Tools are both hidden from tools/list and blocked on tools/call when their scope is missing (error -32003).
| Scope | Granted by default | Unlocks |
|---|---|---|
read | ✅ | get_reference, list_references, list_branches, list_referencegroups, get_company_profile |
search | ✅ | search_references, match_references |
media | ✅ | get_reference_media_urls, the media:// resource |
client_details | — | list_clients (client names on references) |
analytics | — | get_statistics (view counts and trends) |
internal_fields | — | internalproperties (company-internal field data) in get_reference |
Rate limits
60 requests per minute per token. Exceeding the limit returns 429 with a Retry-After: 60 header and JSON-RPC error -32005.
JSON-RPC methods
| Method | Purpose |
|---|---|
initialize | Handshake; returns protocol version, capabilities, and server info |
ping | Liveness check |
tools/list | List available tools (filtered by your token's scopes) |
tools/call | Call a tool by name with arguments |
resources/list | List concrete resources |
resources/templates/list | List resource URI templates |
resources/read | Read a resource by URI |
prompts/list | List built-in prompt templates |
prompts/get | Get a prompt with arguments substituted |
logging/setLevel | Set the session log level |
Batch requests (a JSON array of request objects) are supported. Requests without an id are treated as notifications and answered with 204 No Content.
Example request
curl -X POST https://referenzen.com/mcp/v1 \
-H "Authorization: Bearer dby_mcp_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_references",
"arguments": { "query": "bridge", "limit": 5, "lang": "en" }
}
}'
Tool results always come in two parallel representations:
content— an array of MCP content blocks: a human-readable Markdowntextblock plusresource_linkblocks pointing to canonicalreferences://<id>URIs (used by chat clients for display and citation).structuredContent— a machine-readable JSON object (used by code-driven agents). The field tables below describestructuredContent.
Tools
All tools accept an optional lang parameter ("de" or "en", default "de") that controls the language of returned titles, descriptions, branch names, and formatted values.
search_references
Full-text search across your reference projects, backed by the platform search engine. Requires the search scope.
Free-text query in German or English; supports quoted phrases.
Restrict results to one industry branch (including its sub-branches). Use list_branches to discover IDs.
Restrict results to one of your reference groups. Use list_referencegroups to discover IDs.
ISO 3166-1 alpha-2 country code, e.g. DE, CH, AT.
City name filter.
Project start year — lower bound (1900–2100).
Project start year — upper bound (1900–2100).
Client/customer name filter — matches your clients by company or contact name and restricts results to their references.
Only projects that are currently ongoing.
Response language: de (default) or en.
Page number, starting at 1 (default 1).
Results per page (default 10, maximum 50).
Sort order: relevance (default), datefrom desc, datefrom, or projecttitle.
Response (structuredContent):
Total number of matching references.
The returned page.
Page size used.
Result items with reference_ID, uri (the references://<id> resource URI), title, city, country, and year.
get_reference
Full detail of a single reference project. Requires the read scope. The reference must belong to your company and be published on the API channel; otherwise the call fails.
The reference project ID (from a search/list result or a references:// URI).
Response language: de (default) or en.
Response (structuredContent) — fields are present when the reference has content for them:
The reference project ID.
Project title in the requested language.
Subtitle.
Full project description.
Formatted project period (e.g. 03/2022 – 06/2023); the raw values are in yearfrom, yearuntil.
Project city. Related location fields: location, country, region, and the combined displayedlocation.
Industry branches: objects with branch_ID and branchname.
Your reference groups this project is assigned to: referencegroup_ID, groupname.
Clients: client_ID, displaytype, and displayedname when the client may be named publicly.
Delivered services grouped by work field: objects with workfieldname and a services array (service_ID, servicename).
Products used in the project: product_ID, productname.
Branch-specific project properties grouped by section: section_ID, sectiontitle, and fields — each field has field_ID, title, and either a single value (with unit where applicable) or a values array for multi-option fields.
Company-defined internal fields, same shape as properties fields. Only included when the token has the internal_fields scope.
Gallery images: title, file (full-size URL), thumb (thumbnail URL). Additional media arrays follow the same pattern: videos (title, medialink), widestageimages, portraitstageimages, and documents (title, mediatype, file).
Present and true when the client has confirmed the reference; the quotes are in countersignstatements (statement, displayedname).
Awards won: award_ID, awardname, optional year.
Project partners: partner_ID, companyname, partnerrole.
Each get_reference call is counted as an API-channel view in your reference statistics.
list_references
Plain paginated listing without full-text search — useful for browsing by branch, reference group, or period. Requires the read scope.
Filter by industry branch.
Filter by reference group.
Only currently ongoing projects.
Only projects whose active period overlaps this year or later (a project counts as active from its start year to its end year).
Only projects whose active period overlaps this year or earlier.
Response language: de (default) or en.
Page number, starting at 1 (default 1).
Results per page (default 10, maximum 50).
Sort order: datefrom desc (default), datefrom, projecttitle, or sortorder (your manual ordering).
Response (structuredContent): total, page, limit, and results — items carry reference_ID, uri, title, city, country, yearfrom/monthfrom, yearuntil/monthuntil, plus detail_url (the public reference page) and thumb_url (preview image) where available.
list_branches
The industry/branch tree, one level at a time. Requires the read scope.
Branch ID whose children to return. Omit for the top-level branches.
Response language: de (default) or en.
Response (structuredContent):
Branch nodes in tree order: branch_ID, name, parent_ID.
list_referencegroups
Your company's own reference groups (custom categories). Requires the read scope.
Response language: de (default) or en.
Response (structuredContent):
Groups with referencegroup_ID, name, parent_ID.
get_company_profile
Your own company profile — useful context for the connected assistant. Requires the read scope.
Response language: de (default) or en.
Response (structuredContent):
Your company ID.
Company name.
Company teaser/description text.
Company location.
Company website URL.
The company's URL slug on the platform (also usable in the companies:// resource).
list_clients
Distinct clients/customers from your reference projects. Requires the read and client_details scopes.
Response language: de (default) or en.
Page number, starting at 1 (default 1).
Results per page (default 50, maximum 100).
Response (structuredContent):
Clients on the requested page with client_ID, clientname, city, country.
Total number of clients across all pages.
The returned page.
Page size used.
get_reference_media_urls
Direct URLs for all media files of a reference project. Requires the media scope.
The reference project ID.
Response (structuredContent):
Echo of the requested ID.
Media entries with file_ID, filename, mediatype, and url. Media type codes: 1 gallery image, 2 video, 4/5/9 documents, 7 wide stage image, 8 portrait stage image.
The gateway returns URLs, never binary data — your client or agent fetches the files directly over HTTPS.
get_statistics
View-count statistics for your references. Requires the analytics scope.
What to retrieve: total, by_branch, by_referencegroup, top_references, or trend.
Start date YYYY-MM-DD (default: 30 days ago).
End date YYYY-MM-DD (default: today).
For top_references: how many top references to return (default 10, maximum 50).
Response language: de (default) or en.
Response (structuredContent) depends on type:
total— total view count for the period.by_branch/by_referencegroup— views grouped by branch or reference group.top_references—top_referencesarray withreference_ID,title,viewcount.trend—current_periodandprevious_periodobjects (from,to,views) plus the absolutechange.
match_references
The RFP-matching tool: given a tender text, project brief, or topic description, it returns your best-matching references ranked by relevance. Long inputs are reduced server-side by key-phrase extraction — no pre-summarising needed. Requires the search scope.
Number of top matches to return (default 5, maximum 20).
Optional branch filter.
Optional country filter (ISO 3166-1 alpha-2).
Optional lower bound on the project start year.
Response language: de (default) or en.
Response (structuredContent):
Number of matches returned.
Ranked matches — same shape as search_references results plus a relevance score per item.
The key terms extracted from your text and used for matching — useful to explain why a project matched.
For privacy, the submitted text is never stored in the gateway's call log — only its length.
Resources
Resources are read-only documents addressable by stable URIs, retrieved with resources/read. AI clients can cite these URIs and re-fetch them later. Concrete resources (from resources/list):
| URI | Returns |
|---|---|
companies://me | Your own company profile |
branches://tree | Top-level industry branches |
referencegroups://tree | Your reference groups |
URI templates (from resources/templates/list):
| URI template | Returns |
|---|---|
references://{reference_ID} | Full reference detail (same shape as get_reference) |
references://by-seo/{company_uniquename}/{seo_label} | Reference looked up by its public URL slug |
references://list{?branch_ID,page,limit} | Paginated reference list (mirrors list_references) |
branches://tree{?parent_ID} | Children of a branch node |
branches://{branch_ID} | Single branch detail |
companies://{uniquename} | Public profile of any company (name, city, country, website only) |
media://{file_ID} | URL and metadata for a media file (requires the media scope) |
All resources return mimeType: application/json with the payload serialized in the text field of the contents entry.
Prompts
Built-in prompt templates, discoverable via prompts/list and fetched with prompts/get. They return ready-to-run message sequences that instruct the connected assistant which tools to call.
| Prompt | Purpose | Arguments |
|---|---|---|
summarize_reference | Summarise a reference in 5 bullets for a sales pitch | reference_ID (required), lang |
compare_references | Compare several references side by side in a table | reference_IDs (required, comma-separated), lang |
match_rfp | Find the best portfolio matches for an RFP / brief | text (required), top_k |
case_study_draft | Draft a case study from a reference | reference_ID (required), tone (formal/conversational/technical), lang, length (short/medium/long) |
branch_overview | Summarise your activity in one industry branch | branch_ID (required), lang |
Errors
Errors follow JSON-RPC 2.0 with MCP-specific codes:
| Code | HTTP | Meaning |
|---|---|---|
-32700 | 400 | Invalid JSON body |
-32600 | 200 | Invalid JSON-RPC request envelope |
-32601 | 200 | Unknown method |
-32602 | 200 | Invalid tool/prompt parameters |
-32603 | 200 | Internal server error |
-32001 | 401 | Authentication required (no token) |
-32002 | 401 | Token invalid, expired, or revoked |
-32003 | 200 | Token lacks the required scope |
-32004 | 200 | Reference not accessible for your company |
-32005 | 429 | Rate limit exceeded (60 requests/minute) |
-32010 | 200 | Tool execution error |
Client configuration
Add to claude_desktop_config.json:
{
"mcpServers": {
"references": {
"type": "http",
"url": "https://referenzen.com/mcp/v1",
"headers": {
"Authorization": "Bearer dby_mcp_YOUR_TOKEN"
}
}
}
}
Add a custom connector with:
- URL:
https://referenzen.com/mcp/v1 - Authentication: API key / Bearer token →
dby_mcp_YOUR_TOKEN
Add a custom connector with auth type API Key, header name Authorization, value prefix Bearer .
import os
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient({
"references": {
"transport": "streamable_http",
"url": "https://referenzen.com/mcp/v1",
"headers": {"Authorization": f"Bearer {os.environ['MCP_TOKEN']}"},
}
})
tools = await client.get_tools()
In the MCP Client node:
- Endpoint:
https://referenzen.com/mcp/v1 - Authentication: Bearer Token
- Tools are auto-discovered via
tools/list
The token management page in the app shows these snippets pre-filled with your actual token at creation time — see AI Access (MCP Gateway).