> ## Documentation Index
> Fetch the complete documentation index at: https://fastapi-mcp.tadata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Customization

## Server metadata

You can define the MCP server name and description by modifying:

```python {8-9} theme={null}
from fastapi import FastAPI
from fastapi_mcp import FastApiMCP

app = FastAPI()

mcp = FastApiMCP(
    app,
    name="My API MCP",
    description="Very cool MCP server",
)
mcp.mount_http()
```

## Tool and schema descriptions

When creating the MCP server you can include all possible response schemas in tool descriptions by changing the flag `describe_all_responses`, or include full JSON schema in tool descriptions by changing `describe_full_response_schema`:

```python {10-11} theme={null}
from fastapi import FastAPI
from fastapi_mcp import FastApiMCP

app = FastAPI()

mcp = FastApiMCP(
    app,
    name="My API MCP",
    description="Very cool MCP server",
    describe_all_responses=True,
    describe_full_response_schema=True
)

mcp.mount_http()
```

## Customizing Exposed Endpoints

You can control which FastAPI endpoints are exposed as MCP tools using Open API operation IDs or tags to:

* Only include specific operations
* Exclude specific operations
* Only include operations with specific tags
* Exclude operations with specific tags
* Combine operation IDs and tags

### Code samples

The relevant arguments for these configurations are `include_operations`, `exclude_operations`, `include_tags`, `exclude_tags` and can be used as follows:

<CodeGroup>
  ```python Include Operations {8} theme={null}
  from fastapi import FastAPI
  from fastapi_mcp import FastApiMCP

  app = FastAPI()

  mcp = FastApiMCP(
      app,
      include_operations=["get_user", "create_user"]
  )
  mcp.mount_http()
  ```

  ```python Exclude Operations {8} theme={null}
  from fastapi import FastAPI
  from fastapi_mcp import FastApiMCP

  app = FastAPI()

  mcp = FastApiMCP(
      app,
      exclude_operations=["delete_user"]
  )
  mcp.mount_http()
  ```

  ```python Include Tags {8} theme={null}
  from fastapi import FastAPI
  from fastapi_mcp import FastApiMCP

  app = FastAPI()

  mcp = FastApiMCP(
      app,
      include_tags=["users", "public"]
  )
  mcp.mount_http()
  ```

  ```python Exclude Tags {8} theme={null}
  from fastapi import FastAPI
  from fastapi_mcp import FastApiMCP

  app = FastAPI()

  mcp = FastApiMCP(
      app,
      exclude_tags=["admin", "internal"]
  )
  mcp.mount_http()
  ```

  ```python Combined (include mode) {8-9} theme={null}
  from fastapi import FastAPI
  from fastapi_mcp import FastApiMCP

  app = FastAPI()

  mcp = FastApiMCP(
      app,
      include_operations=["user_login"],
      include_tags=["public"]
  )
  mcp.mount_http()
  ```
</CodeGroup>

### Notes on filtering

* You cannot use both `include_operations` and `exclude_operations` at the same time
* You cannot use both `include_tags` and `exclude_tags` at the same time
* You can combine operation filtering with tag filtering (e.g., use `include_operations` with `include_tags`)
* When combining filters, a greedy approach will be taken. Endpoints matching either criteria will be included
