OverviewMCP Gateway Reference

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

Endpointhttps://referenzen.com/mcp/v1
TransportMCP Streamable HTTP — JSON-RPC 2.0 over POST
Protocol version2024-11-05
Content typeapplication/json (single request object or a JSON-RPC batch array)
SessionThe 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:

header
Authorizationstring
Required

Bearer dby_mcp_... — the recommended way to pass your token.

query
apiKeystring

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).

ScopeGranted by defaultUnlocks
readget_reference, list_references, list_branches, list_referencegroups, get_company_profile
searchsearch_references, match_references
mediaget_reference_media_urls, the media:// resource
client_detailslist_clients (client names on references)
analyticsget_statistics (view counts and trends)
internal_fieldsinternalproperties (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

MethodPurpose
initializeHandshake; returns protocol version, capabilities, and server info
pingLiveness check
tools/listList available tools (filtered by your token's scopes)
tools/callCall a tool by name with arguments
resources/listList concrete resources
resources/templates/listList resource URI templates
resources/readRead a resource by URI
prompts/listList built-in prompt templates
prompts/getGet a prompt with arguments substituted
logging/setLevelSet 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 Markdown text block plus resource_link blocks pointing to canonical references://<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 describe structuredContent.

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.

body
querystring

Free-text query in German or English; supports quoted phrases.

body
branch_IDinteger

Restrict results to one industry branch (including its sub-branches). Use list_branches to discover IDs.

body
referencegroup_IDinteger

Restrict results to one of your reference groups. Use list_referencegroups to discover IDs.

body
countrystring

ISO 3166-1 alpha-2 country code, e.g. DE, CH, AT.

body
citystring

City name filter.

body
year_frominteger

Project start year — lower bound (1900–2100).

body
year_tointeger

Project start year — upper bound (1900–2100).

body
client_namestring

Client/customer name filter — matches your clients by company or contact name and restricts results to their references.

body
ongoingboolean

Only projects that are currently ongoing.

body
langstring

Response language: de (default) or en.

body
pageinteger

Page number, starting at 1 (default 1).

body
limitinteger

Results per page (default 10, maximum 50).

body
orderbystring

Sort order: relevance (default), datefrom desc, datefrom, or projecttitle.

Response (structuredContent):

totalinteger
Required

Total number of matching references.

pageinteger
Required

The returned page.

limitinteger
Required

Page size used.

resultsarray
Required

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.

body
reference_IDinteger
Required

The reference project ID (from a search/list result or a references:// URI).

body
langstring

Response language: de (default) or en.

Response (structuredContent) — fields are present when the reference has content for them:

reference_IDinteger
Required

The reference project ID.

projecttitlestring
Required

Project title in the requested language.

subtitlestring

Subtitle.

descriptionstring

Full project description.

datestring

Formatted project period (e.g. 03/2022 – 06/2023); the raw values are in yearfrom, yearuntil.

citystring

Project city. Related location fields: location, country, region, and the combined displayedlocation.

branchesarray

Industry branches: objects with branch_ID and branchname.

referencegroupsarray

Your reference groups this project is assigned to: referencegroup_ID, groupname.

clientsarray

Clients: client_ID, displaytype, and displayedname when the client may be named publicly.

servicesarray

Delivered services grouped by work field: objects with workfieldname and a services array (service_ID, servicename).

usedproductsarray

Products used in the project: product_ID, productname.

propertiesarray

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.

internalpropertiesarray

Company-defined internal fields, same shape as properties fields. Only included when the token has the internal_fields scope.

galleryimagesarray

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).

isconfirmedboolean

Present and true when the client has confirmed the reference; the quotes are in countersignstatements (statement, displayedname).

awardsarray

Awards won: award_ID, awardname, optional year.

partnersarray

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.

body
branch_IDinteger

Filter by industry branch.

body
referencegroup_IDinteger

Filter by reference group.

body
ongoingboolean

Only currently ongoing projects.

body
year_frominteger

Only projects whose active period overlaps this year or later (a project counts as active from its start year to its end year).

body
year_tointeger

Only projects whose active period overlaps this year or earlier.

body
langstring

Response language: de (default) or en.

body
pageinteger

Page number, starting at 1 (default 1).

body
limitinteger

Results per page (default 10, maximum 50).

body
orderbystring

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.

body
parent_IDinteger

Branch ID whose children to return. Omit for the top-level branches.

body
langstring

Response language: de (default) or en.

Response (structuredContent):

branchesarray
Required

Branch nodes in tree order: branch_ID, name, parent_ID.

list_referencegroups

Your company's own reference groups (custom categories). Requires the read scope.

body
langstring

Response language: de (default) or en.

Response (structuredContent):

referencegroupsarray
Required

Groups with referencegroup_ID, name, parent_ID.

get_company_profile

Your own company profile — useful context for the connected assistant. Requires the read scope.

body
langstring

Response language: de (default) or en.

Response (structuredContent):

company_IDinteger
Required

Your company ID.

namestring
Required

Company name.

descriptionstring

Company teaser/description text.

citystring

Company location.

websitestring

Company website URL.

uniquenamestring

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.

body
langstring

Response language: de (default) or en.

body
pageinteger

Page number, starting at 1 (default 1).

body
limitinteger

Results per page (default 50, maximum 100).

Response (structuredContent):

clientsarray
Required

Clients on the requested page with client_ID, clientname, city, country.

totalinteger
Required

Total number of clients across all pages.

pageinteger
Required

The returned page.

limitinteger
Required

Page size used.

get_reference_media_urls

Direct URLs for all media files of a reference project. Requires the media scope.

body
reference_IDinteger
Required

The reference project ID.

Response (structuredContent):

reference_IDinteger
Required

Echo of the requested ID.

mediaarray
Required

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.

body
typestring
Required

What to retrieve: total, by_branch, by_referencegroup, top_references, or trend.

body
datefromstring

Start date YYYY-MM-DD (default: 30 days ago).

body
datetostring

End date YYYY-MM-DD (default: today).

body
top_kinteger

For top_references: how many top references to return (default 10, maximum 50).

body
langstring

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_referencestop_references array with reference_ID, title, viewcount.
  • trendcurrent_period and previous_period objects (from, to, views) plus the absolute change.

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.

body
textstring
Required

The RFP / brief / topic text to match against. Maximum size: 200 KB.

body
top_kinteger

Number of top matches to return (default 5, maximum 20).

body
branch_IDinteger

Optional branch filter.

body
countrystring

Optional country filter (ISO 3166-1 alpha-2).

body
year_frominteger

Optional lower bound on the project start year.

body
langstring

Response language: de (default) or en.

Response (structuredContent):

totalinteger
Required

Number of matches returned.

resultsarray
Required

Ranked matches — same shape as search_references results plus a relevance score per item.

query_termsstring
Required

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):

URIReturns
companies://meYour own company profile
branches://treeTop-level industry branches
referencegroups://treeYour reference groups

URI templates (from resources/templates/list):

URI templateReturns
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.

PromptPurposeArguments
summarize_referenceSummarise a reference in 5 bullets for a sales pitchreference_ID (required), lang
compare_referencesCompare several references side by side in a tablereference_IDs (required, comma-separated), lang
match_rfpFind the best portfolio matches for an RFP / brieftext (required), top_k
case_study_draftDraft a case study from a referencereference_ID (required), tone (formal/conversational/technical), lang, length (short/medium/long)
branch_overviewSummarise your activity in one industry branchbranch_ID (required), lang

Errors

Errors follow JSON-RPC 2.0 with MCP-specific codes:

CodeHTTPMeaning
-32700400Invalid JSON body
-32600200Invalid JSON-RPC request envelope
-32601200Unknown method
-32602200Invalid tool/prompt parameters
-32603200Internal server error
-32001401Authentication required (no token)
-32002401Token invalid, expired, or revoked
-32003200Token lacks the required scope
-32004200Reference not accessible for your company
-32005429Rate limit exceeded (60 requests/minute)
-32010200Tool 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"
      }
    }
  }
}

The token management page in the app shows these snippets pre-filled with your actual token at creation time — see AI Access (MCP Gateway).