Let an authorized AI client read the portfolio of the POEMS account you connect,
over the Model Context Protocol (MCP).
Overview
POEMS provides a hosted Model Context Protocol (MCP) service that lets an authorized AI client read
portfolio information for the POEMS account you connect. In Claude, POEMS is available as a connector in the
Connectors Directory; other MCP clients connect with the server URL.
The service is read-only and does not place trades.
Server URL and quick start
https://ai.poems.com.sg/mcp
Using Claude? You don't need this URL: connect POEMS from the Connectors Directory as described in
Client setup.
For other clients: the server uses Streamable HTTP. Add this URL to an MCP client that supports remote HTTP
servers and OAuth, then complete the sign-in and consent flow below.
Client setup
Claude
POEMS is listed in Claude's Connectors Directory. Connect it
from Claude on the web or Claude Desktop:
In Claude, go to Customize > Connectors and select + next to
Connectors to browse the directory.
Search for POEMS and open it.
Select Connect and complete the POEMS sign-in in the
window that opens.
Once connected, Claude can use the POEMS tools in your chats. To turn POEMS on or off
for a chat, select + in the chat box, go to Connectors and use its toggle.
A connection made on the web or Claude Desktop is also available in the Claude mobile apps.
Authorization flow
The client requests access using OAuth 2.1 with PKCE and the portfolio scope. Clients
like Claude handle every step except signing in and approving access.
Read the account's Cash-paid securities positions and its unit trusts.
None
get_account_details
Read cash balances, margin and buying-power figures.
None
get_realized_pl_periods
List the months available for realized profit/loss queries. Call this first to choose valid dates.
None
get_realized_pl
Read realized profit/loss for one month or an inclusive range of months.
from (required) and to (optional), both MM/yyyy. Use months
returned by get_realized_pl_periods.
A realized-P/L range is limited to the periods available for the account and the server's maximum range.
Each month in the range counts as one call against your account's request limits.
Example prompts
What's my portfolio worth?
Show my cash balances and buying power.
Which stocks and unit trusts do I hold?
What realized P/L periods can I query?
Show my realized P/L for January through March 2026.
Sessions and disconnecting
Access tokens expire after 2 minutes and refresh tokens after 2 days;
your client refreshes the access token for you. Active refresh tokens rotate when used. Revoking or
replacing the associated POEMS session prevents future token refresh; an already issued access token
remains usable until it expires.
To disconnect in Claude, go to Customize > Connectors, select POEMS and disconnect it.
In other clients, use the client's disconnect/remove action for the POEMS server. The client should revoke
its authorization when supported. If the refresh token is expired, revoked, or no longer linked to the
active POEMS session, reconnect through POEMS sign-in.
Errors and troubleshooting
HTTP status or error
Meaning and suggested action
401
The access token is missing, malformed, or expired. Sign in again or allow the client to refresh it.
403
The token does not have the required portfolio scope. Reconnect and approve the requested access.
429 rate_limit_exceeded
The rolling per-minute limit was reached. Wait before retrying.
429 daily_limit_exceeded
The daily per-account limit was reached.
503 rate_limit_unavailable
The request guard is unavailable. Retry later.
503 mcp_disabled
MCP resource access is temporarily disabled. Retry later.
invalid_grant
The refresh token is no longer valid or the POEMS session binding changed. Reconnect through sign-in.