Skip to main content
Glama
README.md
# MCP NIF.PT

This project implements an intelligent server based on [FastMCP](https://github.com/antero-ferreira/fastmcp), allowing you to query and analyze information about Portuguese companies using the [NIF.PT](https://www.nif.pt/) public API. It supports multiple useful tools such as search by NIF, company name or city, checking company status, and identifying accounting-related businesses.

---

## Features

- Retrieve complete company data by NIF
- Check if a company is active or closed
- Identify if a company is related to accounting
- Search companies by name and city
- Get the NIF based on the exact company name
- Access external links (Google Maps, Racius, Portugalio)

---

## Project Structure

```
.
├── main.py                   
├── models.py                
├── nif_client.py             
├── utils.py                
├── requirements.txt          
├── Dockerfile              
├── package.json             
└── .smithery.profile.json    
```

---

## Technologies Used

- FastMCP
- FastAPI
- httpx
- Pydantic
- Docker
- Python 3.10+

---

## How to Run

### Locally

```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py
```

The application uses `transport="stdio"` by default, making it compatible with Claude Desktop or terminal-based environments.

---

## Usage Examples

- Qual é a empresa com o NIF 504426744?
- A empresa com o NIF 504426744 está ativa?
- A empresa com o NIF 504426744 é de contabilidade?
- Procurar empresas com o nome "contabilidade" em Lisboa
- Qual é o NIF da empresa "XPTO LDA"?

---

## Output Format

The responses include details such as:

- Nome, cidade, atividade e estado
- Morada com link para Google Maps
- Contactos (telefone, email, website)
- CAE (Código de Atividade Económica)
- Ligações externas (Racius, Portugalio)

---

## Claude Desktop Integration

To integrate this MCP with Claude Desktop:

1. **Install Claude Desktop**  
   Download and install from: [https://claude.ai/download](https://claude.ai/download)

2. **Open Configuration**  
   Go to `File > Settings > Developer` and click **Edit Configuration**

3. **Add the MCP server configuration**  
   In the `claude_desktop_config.json`, insert the following configuration:

```json
{
  "mcpServers": {
    "nif-pt-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/YOUR/PROJECT/FOLDER",
        "run",
        "main.py"
      ]
    }
  }
}
```

> Replace `/ABSOLUTE/PATH/TO/YOUR/PROJECT/FOLDER` with the actual absolute path where your `main.py` file is located.

4. **Restart Claude Desktop**  
   After saving the configuration, restart Claude Desktop. Your `nif-pt-server` MCP should now be available in the Claude Desktop interface.

---


## One-Click Installation via Smithery
(https://smithery.ai/server/@ruicarvalho1/mcp_nif)

With Claude Desktop open, you can install this MCP directly using the Smithery CLI.  
Just paste the following command into your terminal:

```bash
npx -y @smithery/cli@latest install @ruicarvalho1/mcp_nif --client claude
```

This will automatically install the MCP and register it with Claude Desktop.

---

## Author

Developed by Rui Carvalho.

---

## License

This project is licensed under the MIT License.