Anweshna Risk Screening
Screen M&A deal documents for red flags across 15 risk categories; findings checked against source.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"risk-screening": {
"url": "https://anweshna.com/mcp/"
}
}
}Remote endpoints
https://anweshna.com/mcp/streamable-httpWhat it can do
Tool inventory
Tools (4)
🟡screen_document(title, content_base64, text, filename, document_type, ...)
Upload a deal document and score it for risk across 15 categories. Returns the overall score, rating, whether the deal is flagged as blocked, and per-category findings. Provide the file either as 'content_base64' (PDF, DOCX, TXT or CSV) or as plain 'text'. The whole call must stay under 32 MB, and base64 adds about a third, so the document itself should be under roughly 24 MB — a larger one is rejected by the transport before this tool runs, which surfaces as a bare HTTP 413 rather than a normal tool error. Use the REST upload endpoint for anything bigger.
Input Schema
{
"type": "object",
"properties": {
"title": {
"title": "Title",
"type": "string"
},
"content_base64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Content Base64"
},
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Text"
},
"filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Filename"
},
"document_type": {
"default": "Report",
"title": "Document Type",
"type": "string"
},
"deal_room_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Deal Room Id"
},
"industry": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Industry"
},
"engine": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Engine"
},
"force_precision": {
"default": false,
"title": "Force Precision",
"type": "boolean"
}
},
"required": [
"title"
],
"title": "screen_documentArguments"
}🟢get_analysis(document_id)
Retrieve the stored risk analysis for a document already screened by this account. Read-only.
Input Schema
{
"type": "object",
"properties": {
"document_id": {
"title": "Document Id",
"type": "string"
}
},
"required": [
"document_id"
],
"title": "get_analysisArguments"
}🟡bulk_screen(documents, bulk_job_id, deal_room_id, document_type, industry, ...)
Upload up to 25 documents and screen them as one batch. Waits for text extraction, then starts scoring and returns job ids; poll get_bulk_status until the batch is finished. Each item is {title, content_base64 | text, filename?}. The 25-document limit is not the binding one for large files: the whole call must stay under 32 MB including base64 overhead, so send fewer, larger documents per batch rather than filling all 25 slots. Exceeding it is a bare HTTP 413 from the transport, before this tool runs. To RESUME a batch that was uploaded but not scored — this tool timed out waiting for extraction, or scoring failed to start — call it again with 'bulk_job_id' instead of 'documents'. That re-uses the existing upload and does NOT spend the account's quota a second time. If the batch is rejected because one or more documents are too large for the plan's scan engine, retry with force_precision=true to scan those documents truncated to the recall window (coverage beyond it is excluded).
Input Schema
{
"type": "object",
"properties": {
"documents": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Documents"
},
"bulk_job_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Bulk Job Id"
},
"deal_room_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Deal Room Id"
},
"document_type": {
"default": "Report",
"title": "Document Type",
"type": "string"
},
"industry": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Industry"
},
"engine": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Engine"
},
"force_precision": {
"default": false,
"title": "Force Precision",
"type": "boolean"
}
},
"title": "bulk_screenArguments"
}🟡get_bulk_status(upload_job_id, analyze_job_id)
Check progress of a batch started by bulk_screen. Pass the upload_job_id, the analyze_job_id, or both.
Input Schema
{
"type": "object",
"properties": {
"upload_job_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Upload Job Id"
},
"analyze_job_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Analyze Job Id"
}
},
"title": "get_bulk_statusArguments"
}Community
Evidence