Skip to main content
Glama
d0whc3r

EGIPCI MCP Server

by d0whc3r
README.md
# EGIPCI MCP Server

MCP (Model Context Protocol) server for querying archaeological site information from the EGIPCI service (Expedient d'Informació del Patrimoni Cultural Immoble) of the Department of Culture of the Generalitat de Catalunya.

This server allows AI editors like Claude Code, Cursor, and other MCP clients to access archaeological information from Catalunya through the standard MCP protocol.

**Note**: This package is designed to be used as an MCP server through `npx`, not as a global installation.

## Quick Start

This package is designed as an MCP server - no installation needed! Just configure it in your MCP client.

## Usage

### MCP Client Configuration

To use this server with an MCP client, add the following configuration to your `mcp.json` file:

```json
{
  "mcpServers": {
    "gencat-egipci": {
      "command": "npx",
      "args": ["-y", "@d0whc3r/egipci-mcp@latest"],
      "env": {
        "EGIPCI_COOKIE": "your_intranet_cookie_value_here"
      }
    }
  }
}
```

### Available Tools

#### `query_egipci_site`

Query information for a specific archaeological site.

**Parameters:**

- `cookie` (string, optional): `.intranet` cookie for EGIPCI authentication. If not provided, the `EGIPCI_COOKIE` environment variable will be used
- `id` (string, required): Archaeological site ID to query

**Usage example:**

With cookie as parameter:

```json
{
  "name": "query_egipci_site",
  "arguments": {
    "cookie": "your_intranet_cookie_value",
    "id": "12345"
  }
}
```

With cookie from environment variable:

```json
{
  "name": "query_egipci_site",
  "arguments": {
    "id": "12345"
  }
}
```

**Response:**
Returns the site information in XML format as provided by the EGIPCI service.

### Authentication Methods

#### Using Environment Variable (Recommended)

The safest and most convenient way is to configure the cookie in the `EGIPCI_COOKIE` environment variable in the MCP configuration. This has several advantages:

- **Security**: The cookie is not exposed in each tool call
- **Convenience**: You don't need to pass the cookie in each query
- **Reusability**: Single configuration for all queries
- **Maintenance**: Easy update when the cookie expires

#### Using Cookie Parameter

You can also pass the cookie directly as a parameter in each call. This is useful for:

- Using different cookies for different queries
- Cases where you cannot configure environment variables
- Testing and development

### Obtaining Authentication Cookie

To obtain the required `.intranet` cookie:

1. Go to https://egipci.cultura.gencat.cat/ in your browser
2. Log in with your credentials
3. Open developer tools (F12)
4. Go to the "Application" or "Storage" tab
5. In "Cookies", look for the `.intranet` cookie
6. Copy the cookie value to use as parameter

### Error Handling

The server handles various types of errors using the `got` library:

- **Missing or invalid parameters**: Input validation with Zod
- **HTTP errors**: Status codes 4xx/5xx using `got.HTTPError`
- **Network errors**: Connectivity issues using `got.RequestError`
- **Authentication errors**: Invalid or expired cookie
- **Format errors**: XML response validation

All errors are returned with descriptive messages.

## Development

For contributors and developers working on this project:

- **Development Setup**: See [`.kiro/steering/tech.md`](.kiro/steering/tech.md) for technology stack and commands
- **Testing Guidelines**: See [`.kiro/steering/testing.md`](.kiro/steering/testing.md) for testing patterns and requirements
- **CI/CD Pipeline**: See [`.kiro/steering/pipeline.md`](.kiro/steering/pipeline.md) for deployment and quality gates
- **Project Structure**: See [`.kiro/steering/structure.md`](.kiro/steering/structure.md) for architecture details

## Requirements

- Valid `.intranet` cookie for EGIPCI authentication
- For development: Node.js >= 18.0.0, pnpm

TDQS

B3.2/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no possibility of confusion or overlap.

Naming Consistency5/5

The single tool name follows a clear verb_noun pattern (query_egipci_site), establishing a consistent convention.

Tool Count2/5

With only one tool for what likely requires multiple operations (e.g., query, list, detail), the surface feels insufficient for a well-scoped server.

Completeness2/5

The server provides only a query capability; without create, update, or delete tools, it is incomplete for typical archaeological site management.

Maintenance

ActivityInactive
ResponsivenessNo issues