# Strise MCP Server

## Description

Strise is an AI-powered AML (Anti-Money Laundering) automation platform for KYB/KYC compliance. The Strise MCP server gives Claude direct access to Strise's compliance intelligence — search companies and persons, retrieve risk assessments, manage reviews, and monitor entities for sanctions, PEP status, and adverse media.

## Features

- **Entity Search & Lookup** — Search companies, business persons, and private persons by name or organization number
- **Risk & Compliance** — Retrieve risk summaries with sanction/PEP screening, adverse media results, and calculated risk scores
- **Company Intelligence** — Access financials, ownership structures, board roles, branches, registers, credit reports, and more
- **Review Management** — Create and track compliance reviews with approval/disapproval decisions and risk assessments
- **Perpetual Monitoring** — Add entities to continuous monitoring and receive alerts on changes
- **Adverse Media Screening** — Review AMS hits and create dispositions (confirm true/false)
- **Entity Management** — Update statuses, manage custom registers, connect entities, and log team activities

## Setup

1. Visit the [Anthropic MCP Directory](https://claude.com/connectors)
2. Find and connect to **Strise**
3. Complete OAuth authentication with your Strise account
4. Start using Strise tools in Claude

## Authentication

This server requires OAuth 2.0 authentication. You need:
- A valid Strise platform account
- Access to at least one team in Strise

## Examples

### Example 1: Research a Company for Compliance Review

**User prompt:** "Look up the Norwegian company with organization number 923609016 and give me a compliance summary including risk score, ownership, and any sanctions or PEP hits."

**What happens:**
1. `lookup_company` finds the company by its registration number in Norway
2. `get_entity_risk_summary` retrieves the calculated risk score, sanction screening, and PEP screening results
3. `get_entity_ownership` retrieves the ownership structure and beneficial owners (UBOs)
4. Claude synthesizes a compliance summary with risk level, beneficial owners, and any flags

### Example 2: Screen a Person for Sanctions and PEP Status

**User prompt:** "Search for a person named 'John Smith' and check if they have any sanctions or PEP flags."

**What happens:**
1. `search_entities` searches for the person by name with `returnType: PERSON`
2. `get_entity_risk_summary` retrieves sanction and PEP screening results for the matching person
3. `get_entity_roles` shows the person's board memberships and executive roles
4. Claude reports whether any sanctions or PEP matches were found, along with the person's corporate roles

### Example 3: Review and Approve a Client

**User prompt:** "Review and approve Acme Corp (company ID abc-123) as low risk with a note that KYC documents are verified."

**What happens:**
1. `get_entity_risk_summary` retrieves the current risk assessment to confirm the risk level
2. `create_company_review` creates a compliance review with status APPROVED, audit risk LOW, and the provided comment
3. `update_company_status` updates the entity status to ACCOUNT
4. Claude confirms the review was created and the company status was updated

### Example 4: Monitor Adverse Media for a Portfolio Entity

**User prompt:** "Check the adverse media screening results for company xyz-456 and mark any irrelevant hits as false."

**What happens:**
1. `get_entity_ams_events` retrieves all AMS (Adverse Media Screening) hits for the entity
2. Claude presents the media hits with sources and categorizations
3. For hits identified as irrelevant, `create_ams_event_disposition` marks them as CONFIRMED_FALSE with a comment
4. Claude provides a summary of dispositioned vs remaining hits

### Example 5: Onboard a Private Person for Monitoring

**User prompt:** "Search for private person 'Jane Doe' in Sweden, check her risk profile, and add her to perpetual monitoring."

**What happens:**
1. `search_private_persons` searches by name with country filter SE
2. `get_private_person_details` retrieves the person's details
3. `get_entity_risk_summary` checks for sanctions, PEP, and adverse media flags
4. `add_private_person_to_monitoring` enables continuous screening
5. Claude confirms the person is now monitored and summarizes initial risk findings

---

## Tools

### Search & Discovery

#### search_entities
Search for companies, business persons, or private persons by name or keyword. Use the returned entity IDs with detail and risk tools for deeper analysis.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | Name or keyword to search for |
| `returnType` | `ALL` \| `COMPANY` \| `PERSON` \| `PRIVATE_PERSON` | No | Entity type filter (default: ALL) |
| `first` | number | No | Max results 1–50 (default: 10) |

- Read-only: yes
- Destructive: no

**Example prompt:** "Search for companies matching 'Equinor'"

---

#### search_private_persons
Search for private persons (individuals not publicly registered as business persons) by name. Optionally filter by country.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | Full or partial name to search for |
| `country` | string (ISO 3166-1 alpha-2) | No | Country code filter |

- Read-only: yes
- Destructive: no

**Example prompt:** "Search for private person 'Maria Hansen' in Norway"

---

#### lookup_company
Look up a company by its official organization or registration number. Requires the country where the company is registered.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `organizationNumber` | string | Yes | Official registration number |
| `country` | string (ISO 3166-1 alpha-2) | Yes | Country where the company is registered |

- Read-only: yes
- Destructive: no

**Example prompt:** "Look up Norwegian company with org number 923609016"

---

### Entity Details

#### get_company_details
Retrieve detailed company information including registration details, addresses, industry codes, and corporate purpose.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |

- Read-only: yes
- Destructive: no

**Example prompt:** "Get details for company abc-123"

---

#### get_person_details
Retrieve detailed information about a business person including nationality, citizenship, residence, and addresses.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `personId` | string | Yes | Strise person ID |

- Read-only: yes
- Destructive: no

**Example prompt:** "Get details for person def-456"

---

#### get_private_person_details
Retrieve detailed information about a private person including citizenship, registered country, and addresses.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `personId` | string | Yes | Strise private person ID |

- Read-only: yes
- Destructive: no

**Example prompt:** "Get details for private person ghi-789"

---

### Risk & Compliance

#### get_entity_risk_summary
Retrieve the risk summary for any entity, including calculated risk score, sanction screening results, and PEP screening results.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityId` | string | Yes | Strise entity ID (company, person, or private person) |

- Read-only: yes
- Destructive: no

**Example prompt:** "What is the risk score for company abc-123?"

---

#### get_entity_reviews
Retrieve compliance reviews for an entity. Returns review history including status, reviewer, and review data.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityId` | string | Yes | Strise entity ID |
| `isPrivatePerson` | boolean | No | Set to true for private persons (default: false) |

- Read-only: yes
- Destructive: no

**Example prompt:** "Show me the review history for company abc-123"

---

#### get_entity_ams_events
Retrieve Adverse Media Screening (AMS) events for an entity. Returns media hits flagged as potentially adverse, including source details and categorization.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityId` | string | Yes | Strise entity ID |

- Read-only: yes
- Destructive: no

**Example prompt:** "Show adverse media hits for company abc-123"

---

### Company Data

#### get_company_branches
Retrieve branch/subsidiary offices for a company.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |

- Read-only: yes
- Destructive: no

---

#### get_company_financials
Retrieve financial data including annual accounts, revenue, profit, equity, and other financial metrics.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |

- Read-only: yes
- Destructive: no

**Example prompt:** "What are the latest financials for company abc-123?"

---

#### get_company_real_estate
Retrieve real estate properties owned by a company.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |

- Read-only: yes
- Destructive: no

---

#### get_company_collateral
Retrieve collateral/security interests registered against a company.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |

- Read-only: yes
- Destructive: no

---

#### get_company_credit_report
Retrieve the credit report including credit score, rating, and payment behavior data.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |

- Read-only: yes
- Destructive: no

**Example prompt:** "Get the credit report for company abc-123"

---

#### get_company_ccj_report
Retrieve County Court Judgments (CCJ) report for a UK company.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |

- Read-only: yes
- Destructive: no

---

#### get_company_registers
Retrieve public register entries for a company, such as trade register, VAT register, and other official registrations.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |

- Read-only: yes
- Destructive: no

---

#### get_company_documents
Retrieve uploaded documents associated with a company, such as compliance documents, certificates, and reports.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |

- Read-only: yes
- Destructive: no

---

#### get_company_reminders
Retrieve reminders/tasks set for a company, including due dates, assignees, and completion status.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |

- Read-only: yes
- Destructive: no

---

#### get_company_team_activities
Retrieve team activity log for a company, including review actions, status changes, and other team interactions.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |
| `limit` | number | No | Max activities to return, 1–100 (default: 50) |

- Read-only: yes
- Destructive: no

---

#### get_company_connected_entities
Retrieve custom/manually connected entities linked to a company, such as related persons or organizations added by the team.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |

- Read-only: yes
- Destructive: no

---

#### get_idv_persons
Retrieve Identity Verification (IDV) check results for persons associated with a company.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |

- Read-only: yes
- Destructive: no

---

### Entity Structure

#### get_entity_ownership
Retrieve ownership and beneficial ownership (UBO) details, including direct owners, beneficial owners, and ownership percentages.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |
| `beneficialOwnerThreshold` | number | No | UBO threshold percentage 0–100 (default: 25) |

- Read-only: yes
- Destructive: no

**Example prompt:** "Who are the beneficial owners of company abc-123 at a 25% threshold?"

---

#### get_entity_roles
Retrieve business roles (board members, executives, signatories, etc.) for a company, person, or private person.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityId` | string | Yes | Strise entity ID |
| `filterActive` | boolean | No | Filter to only active roles (default: true) |

- Read-only: yes
- Destructive: no

**Example prompt:** "Who are the board members of company abc-123?"

---

#### get_entity_events
Retrieve the event feed for an entity, including news articles, regulatory changes, and other relevant events.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityId` | string | Yes | Strise entity ID |
| `limit` | number | No | Max events 1–50 (default: 20) |

- Read-only: yes
- Destructive: no

**Example prompt:** "Show recent events for company abc-123"

---

### Private Person Data

#### get_connected_business_persons
Retrieve business persons connected to a private person, showing their corporate relationships and roles.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `privatePersonId` | string | Yes | Strise private person ID |

- Read-only: yes
- Destructive: no

---

### Monitoring & Alerts

#### list_alerts
List monitoring alerts for the current team's watched entities. Alerts are triggered by changes in entity data such as new flags, ownership changes, or sanctions updates.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityKind` | `COMPANY` \| `PRIVATE_PERSON` | No | Entity type filter (default: COMPANY) |

- Read-only: yes
- Destructive: no

**Example prompt:** "Show me all current monitoring alerts for companies"

---

### Review Management

#### create_company_review
Create a compliance review for a company. Sets the review status, audit risk level, and optional risk assessment.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityId` | string | Yes | Strise company entity ID |
| `reviewStatus` | `APPROVED` \| `DISAPPROVED` | Yes | Review decision |
| `auditRisk` | `HIGH` \| `MEDIUM` \| `LOW` \| `NONE` | Yes | Audit risk level |
| `comment` | string | No | Review comment |
| `riskLevel` | string | No | Manual risk level override |
| `calculatedRiskLevel` | string | No | Calculated risk level |
| `entityStatus` | string | No | Entity status to set after review |

- Read-only: no
- Destructive: no

**Example prompt:** "Approve company abc-123 as low risk with comment 'KYC verified'"

---

#### create_private_person_review
Create a compliance review for a private person. Sets the review status, audit risk level, and optional risk assessment.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `privatePersonId` | string | Yes | Strise private person ID |
| `reviewStatus` | `APPROVED` \| `DISAPPROVED` | Yes | Review decision |
| `auditRisk` | `HIGH` \| `MEDIUM` \| `LOW` \| `NONE` | Yes | Audit risk level |
| `comment` | string | No | Review comment |
| `riskLevel` | string | No | Manual risk level override |
| `calculatedRiskLevel` | string | No | Calculated risk level |

- Read-only: no
- Destructive: no

---

### Adverse Media Screening

#### create_ams_event_disposition
Create a disposition for an adverse media screening event. Mark an AMS hit as confirmed true or confirmed false.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityId` | string | Yes | Strise entity ID the event belongs to |
| `eventId` | string | Yes | AMS event ID to disposition |
| `clusteredEventIds` | string[] | No | Related clustered event IDs (default: []) |
| `status` | `CONFIRMED_TRUE` \| `CONFIRMED_FALSE` | Yes | Disposition decision |
| `comment` | string | No | Comment explaining the disposition |

- Read-only: no
- Destructive: no

**Example prompt:** "Mark AMS event evt-789 for entity abc-123 as confirmed false — it's about a different company with the same name"

---

#### create_custom_ams_event
Create a custom adverse media screening event for an entity. Manually add a news article or media event for AMS tracking.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityId` | string | Yes | Strise entity ID |
| `title` | string | Yes | Title of the article |
| `url` | string | Yes | URL of the source |
| `publishedAt` | string (ISO 8601) | Yes | Publication date |
| `language` | string | Yes | Article language |
| `relatedEntityIds` | string[] | Yes | Related entity IDs |
| `publisher` | string | No | Publisher name |
| `summary` | string | No | Article summary |

- Read-only: no
- Destructive: no

---

### Report Ordering

#### order_credit_report
Order a credit report for a company from the credit bureau.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |
| `customerId` | string | Yes | Customer (portfolio) ID |

- Read-only: no
- Destructive: no

---

#### order_ccj_report
Order a County Court Judgment (CCJ) report for a company.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |
| `customerId` | string | Yes | Customer (portfolio) ID |

- Read-only: no
- Destructive: no

---

### Custom Registers

#### create_custom_register
Create a custom register entry for an entity. Registers track regulatory registrations, licenses, and permits.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityId` | string | Yes | Strise entity ID |
| `name` | string | Yes | Register or license name |
| `status` | `REGISTERED` \| `UNREGISTERED` | Yes | Registration status |
| `comment` | string | No | Comment |
| `source` | string | No | Source of the information |
| `registeredSince` | string (ISO 8601) | No | Registration date |
| `sourceTimestamp` | string (ISO 8601) | No | Source timestamp |

- Read-only: no
- Destructive: no

---

#### update_custom_register
Update an existing custom register entry.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `registerId` | string | Yes | Custom register ID |
| `name` | string | Yes | Register or license name |
| `status` | `REGISTERED` \| `UNREGISTERED` | Yes | Registration status |
| `comment` | string | No | Comment |
| `source` | string | No | Source of the information |
| `registeredSince` | string (ISO 8601) | No | Registration date |
| `sourceTimestamp` | string (ISO 8601) | No | Source timestamp |

- Read-only: no
- Destructive: no

---

#### delete_custom_register
Delete a custom register entry.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `registerId` | string | Yes | Custom register ID |

- Read-only: no
- Destructive: **yes**

---

### Ownership Management

#### update_entity_owner
Update ownership details for an entity owner, including ownership percentage.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityId` | string | Yes | Company whose ownership is being viewed |
| `ownerEntityId` | string | Yes | Entity ID of the owner being updated |
| `ownership` | number | No | Ownership percentage 0–100 |
| `previousOwnership` | number | No | Previous ownership percentage |
| `comment` | string | No | Comment about the ownership edit |

- Read-only: no
- Destructive: no

---

#### reset_entity_owners
Reset all ownership edits for an entity back to original data source values.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityId` | string | Yes | Strise entity ID |

- Read-only: no
- Destructive: **yes**

---

### Role Management

#### update_entity_role
Update a business role for an entity.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityId` | string | Yes | Company whose roles are being viewed |
| `roleEntityId` | string | Yes | Person whose role is being updated |
| `roleTitleId` | string | Yes | Role title ID |
| `periodFrom` | string (ISO 8601) | No | Role start date |
| `periodTo` | string (ISO 8601) | No | Role end date |
| `previousRoleTitleId` | string | No | Previous role title ID |
| `previousPeriodFrom` | string (ISO 8601) | No | Previous start date |
| `previousPeriodTo` | string (ISO 8601) | No | Previous end date |
| `comment` | string | No | Comment about the role edit |

- Read-only: no
- Destructive: no

---

#### reset_entity_roles
Reset all role edits for an entity back to original data source values.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entityId` | string | Yes | Strise entity ID |
| `entityType` | `company` \| `person` | Yes | Type of entity |

- Read-only: no
- Destructive: **yes**

---

### Entity Connections

#### connect_custom_company
Connect a custom company to a registered entity.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `customCompanyId` | string | Yes | Custom company ID |
| `registeredEntityId` | string | Yes | Registered entity ID |
| `comment` | string | No | Comment about the connection |

- Read-only: no
- Destructive: no

---

#### connect_person
Connect one or more persons to a private person record for consolidated monitoring.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `privatePersonId` | string | Yes | Private person ID |
| `connections` | array | Yes | Array of `{ personToConnect, comment }` |

- Read-only: no
- Destructive: no

---

#### delete_custom_entity_connection
Delete the connection between a custom entity and a registered entity.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `customEntityId` | string | Yes | Custom entity ID |

- Read-only: no
- Destructive: **yes**

---

#### remove_connected_persons
Remove connected persons from a private person record.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `privatePersonId` | string | Yes | Private person ID |
| `personsToRemove` | string[] | Yes | Person IDs to disconnect |

- Read-only: no
- Destructive: **yes**

---

### Entity Status

#### update_company_status
Update the status of a company.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |
| `status` | `ACCOUNT` \| `PROSPECT` \| `QUALIFIED` \| `DISQUALIFIED` \| `FOLLOWING` \| `IGNORED` \| `IN_QUALIFICATION` | Yes | New status |

- Read-only: no
- Destructive: no

**Example prompt:** "Set company abc-123 status to ACCOUNT"

---

#### update_private_person_status
Update the status of a private person.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `privatePersonId` | string | Yes | Strise private person ID |
| `status` | `ACCOUNT` \| `PROSPECT` \| `QUALIFIED` \| `DISQUALIFIED` \| `FOLLOWING` \| `IGNORED` \| `IN_QUALIFICATION` | Yes | New status |

- Read-only: no
- Destructive: no

---

#### remove_private_person_status
Remove the status from a private person, resetting it to no status.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `privatePersonId` | string | Yes | Strise private person ID |

- Read-only: no
- Destructive: **yes**

---

### Monitoring

#### add_private_person_to_monitoring
Add a private person to perpetual monitoring. The system will continuously check for changes in PEP status, sanctions, and adverse media.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `privatePersonId` | string | Yes | Strise private person ID |

- Read-only: no
- Destructive: no

**Example prompt:** "Add private person ghi-789 to perpetual monitoring"

---

#### remove_private_person_from_monitoring
Remove a private person from perpetual monitoring.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `privatePersonId` | string | Yes | Strise private person ID |

- Read-only: no
- Destructive: **yes**

---

### Team Activities

#### create_team_activity
Create a team activity (note, meeting, or call) for a company. Used to log interactions and notes on a company record.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |
| `kind` | `NOTE` \| `MEETING` \| `CALL` | Yes | Activity type |
| `timestamp` | string (ISO 8601) | Yes | Activity timestamp |
| `reminderStatus` | `ACTIVE` \| `INACTIVE` | No | Reminder status (default: INACTIVE) |
| `note` | string | No | Note or description |
| `assignee` | string | No | User ID to assign to |

- Read-only: no
- Destructive: no

**Example prompt:** "Log a note on company abc-123 that we had a KYC verification call today"

---

#### delete_team_activity
Delete a team activity from a company record.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `companyId` | string | Yes | Strise company ID |
| `teamActivityId` | string | Yes | Team activity ID |

- Read-only: no
- Destructive: **yes**

---

## Privacy Policy

See our privacy policy: https://strise.ai/privacy-policy

## Support

- Email: support@strise.ai
- Website: https://strise.ai
