Skip to main content
Glama
laurentluce

arcep-eligibility-mcp-server

by laurentluce

ARCEP Eligibility MCP Server

An MCP server that queries the ARCEP eligibility API to check fixed-line and mobile telecom eligibilities for a given address in France.

Tools

get_fixed_line_eligibilities

Returns fixed-line eligibility data for a given street address and town in France.

Parameters:

Name

Type

Description

streetAddress

string

Street address (e.g. "10 rue de la Paix")

townName

string

Town name (e.g. "Paris")

get_mobile_eligibilities

Returns mobile eligibility data for a given street address and town in France.

Parameters:

Name

Type

Description

streetAddress

string

Street address (e.g. "10 rue de la Paix")

townName

string

Town name (e.g. "Paris")

Related MCP server: Geocode BAN MCP

Setup

Prerequisites

  • Node.js 18+

  • An ARCEP API key

Build

npm install
npm run build

Configuration

Set the ARCEP_API_KEY environment variable:

export ARCEP_API_KEY=your_api_key

Usage with Claude Desktop

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "arcep-eligibility": {
      "command": "node",
      "args": ["/absolute/path/to/arcep-api-eligibility-mcp-server/build/index.js"],
      "env": {
        "ARCEP_API_KEY": "your_api_key"
      }
    }
  }
}

License

ISC

Available Tools

2 tools
get_fixed_line_eligibilitiesA

Get fixed-line eligibilities for an address from the ARCEP API. Chains town lookup, address lookup, building lookup, and eligibility fetch.

ParametersJSON Schema
NameRequiredDescriptionDefault
townNameYesThe town/commune name (e.g. 'Paris')
streetAddressYesThe street address to look up (e.g. '10 rue de la Paix')

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently reveals that the operation chains multiple steps—town lookup, address lookup, building lookup, and eligibility fetch—which signals multiple internal API calls and potentially slower execution. It remains a read-style operation ('Get'), so no hidden mutation is implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences with no filler. The main action is front-loaded, and the pipeline detail is a useful, efficient expansion rather than repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool, the description covers what the tool does, the data source, and the internal flow. It does not describe the return format, error behavior, or rate limits, but those are partially inferable from the tool name and the absence of an output schema. The description is broadly sufficient for an agent to select and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents townName and streetAddress with examples. The description adds context by explaining these feed into a lookup chain, but it does not provide additional parameter constraints, formats, or validation rules beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get'), resource ('fixed-line eligibilities'), and source ('ARCEP API'), making the tool's function immediately clear. The 'fixed-line' qualifier distinguishes it from the sibling get_mobile_eligibilities even without an explicit comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context in which to use this tool is implied by 'fixed-line eligibilities' and the address-focused parameters, but there is no explicit guidance about when to use this versus get_mobile_eligibilities. No alternative tool is named in the description, so the agent must infer the boundary from the names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mobile_eligibilitiesB

Get mobile eligibilities for an address from the ARCEP API.

ParametersJSON Schema
NameRequiredDescriptionDefault
townNameYesThe town/commune name (e.g. 'Paris')
streetAddressYesThe street address to look up (e.g. '10 rue de la Paix')

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It implies a read-only lookup but does not mention response shape, possible errors, rate limits, authorization, or external API behavior beyond naming ARCEP.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with no filler. It front-loads the core purpose and external data source without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter lookup, the description is minimally viable: it names the resource, source, and required inputs. However, the lack of an output schema and any guidance on response contents or edge cases leaves some uncertainty for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both parameters already described clearly in the input schema. The description adds no extra parameter detail, which is acceptable because the schema already carries the semantic weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get'), the resource ('mobile eligibilities'), and the data source ('ARCEP API'). It is specific enough to be understood, and the tool name plus 'mobile' distinguishes it from the sibling get_fixed_line_eligibilities, though the description itself does not explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus get_fixed_line_eligibilities, nor are there any exclusions or prerequisites. The context is only inferable from the tool name and the word 'mobile'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv1.0.0
    • First observedget_fixed_line_eligibilities
    • First observedget_mobile_eligibilities

TDQS

A3.7/5.0
Disambiguation5/5

The two tools are clearly separated by service type: fixed-line versus mobile eligibility. There is no overlap or ambiguity in their purposes.

Naming Consistency5/5

Both tools follow the exact same get_<type>_eligibilities pattern, using consistent snake_case and a clear verb-noun structure.

Tool Count3/5

With only two tools, the server feels minimal, but the count aligns with its narrow ARCEP eligibility scope. It is on the thin side but not unreasonably so.

Completeness4/5

The server covers both major eligibility domains (fixed-line and mobile) for the ARCEP API. A minor gap is the lack of separate address lookup or offer detail tools, but the core eligibility workflows are implemented.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/laurentluce/arcep-eligibility-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server