agentrynku-mcp 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -66
- package/TOOLS.md +149 -164
- package/bin/agentrynku-mcp.js +30 -6
- package/examples/claude-code.sh +2 -3
- package/examples/claude-desktop.json +4 -2
- package/examples/cursor-mcp.json +1 -2
- package/package.json +9 -3
package/README.md
CHANGED
|
@@ -1,118 +1,95 @@
|
|
|
1
|
-
# Agent Rynku MCP: Warsaw Stock Exchange
|
|
1
|
+
# Agent Rynku MCP: Warsaw Stock Exchange data for agents
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/agentrynku-mcp)
|
|
4
|
-
[](https://registry.modelcontextprotocol.io/v0/servers?search=pl.agentrynku)
|
|
4
|
+
[](https://registry.modelcontextprotocol.io/v0.1/servers?search=pl.agentrynku%2Fgpw)
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Use GPW company financials through a hosted MCP server, without creating an account. [Agent Rynku](https://agentrynku.pl/en/mcp) returns report periods, currency, sources and quality checks. Missing data is explicit.
|
|
7
7
|
|
|
8
|
-
Connect
|
|
8
|
+
## Connect without an API key
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
- "Show WIG20 companies after their latest results."
|
|
12
|
-
- "Which of my positions are above 20% concentration?"
|
|
13
|
-
- "How much tax will I owe on this year's sales?"
|
|
10
|
+
The endpoint uses Streamable HTTP:
|
|
14
11
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## Quick start
|
|
18
|
-
|
|
19
|
-
**1. Get an API key.** Create a free account at [agentrynku.pl](https://agentrynku.pl/login) and generate a key in [settings](https://agentrynku.pl/settings). The free account covers unlimited data tool calls; only the LLM-backed companion queries are metered. The bridge below makes one check call per start to verify the key.
|
|
20
|
-
|
|
21
|
-
**2. Connect your client.** The server speaks Streamable HTTP at:
|
|
22
|
-
|
|
23
|
-
```
|
|
12
|
+
```text
|
|
24
13
|
https://agentrynku.pl/api/mcp
|
|
25
14
|
```
|
|
26
15
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
### Claude Code
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
claude mcp add --transport http agentrynku https://agentrynku.pl/api/mcp \
|
|
33
|
-
--header "Authorization: Bearer YOUR_KEY"
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Cursor and other clients with remote HTTP support
|
|
16
|
+
For clients that read this configuration format:
|
|
37
17
|
|
|
38
18
|
```json
|
|
39
19
|
{
|
|
40
20
|
"mcpServers": {
|
|
41
21
|
"agentrynku": {
|
|
42
22
|
"type": "http",
|
|
43
|
-
"url": "https://agentrynku.pl/api/mcp"
|
|
44
|
-
"headers": { "Authorization": "Bearer YOUR_KEY" }
|
|
23
|
+
"url": "https://agentrynku.pl/api/mcp"
|
|
45
24
|
}
|
|
46
25
|
}
|
|
47
26
|
}
|
|
48
27
|
```
|
|
49
28
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
This package is a small stdio bridge to the hosted server (it uses [`mcp-remote`](https://www.npmjs.com/package/mcp-remote)):
|
|
29
|
+
For clients that launch a local command, this package bridges stdio to the hosted server using [mcp-remote](https://www.npmjs.com/package/mcp-remote). Requires Node 20.18.1 or newer:
|
|
53
30
|
|
|
54
31
|
```json
|
|
55
32
|
{
|
|
56
33
|
"mcpServers": {
|
|
57
34
|
"agentrynku": {
|
|
58
35
|
"command": "npx",
|
|
59
|
-
"args": ["-y", "agentrynku-mcp"]
|
|
60
|
-
"env": { "AGENTRYNKU_API_KEY": "YOUR_KEY" }
|
|
36
|
+
"args": ["-y", "agentrynku-mcp"]
|
|
61
37
|
}
|
|
62
38
|
}
|
|
63
39
|
}
|
|
64
40
|
```
|
|
65
41
|
|
|
66
|
-
|
|
42
|
+
No Authorization header or environment variable is needed for public data.
|
|
43
|
+
|
|
44
|
+
## Public tools
|
|
45
|
+
|
|
46
|
+
| Tool | What it returns | Request limit |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| `search_gpw_companies` | GPW companies by name, ticker, alias or ISIN, with canonical symbols and company URLs | 20 results |
|
|
49
|
+
| `get_quarterly_kpis` | Quarterly financials, reporting scope, currency, units, sources and quality gates | 20 quarters |
|
|
50
|
+
| `get_financial_ratios` | Quarterly margins and equity/assets, with formulas and reasons for unavailable values | 20 quarters |
|
|
51
|
+
| `get_public_earnings_calendar` | Known scheduled reports across GPW, with source and fetch date | 90 days, 100 events |
|
|
52
|
+
| `get_public_dividends` | Known issuer WZA dividend resolutions: amount per share, currency, dates and source | 100 events |
|
|
53
|
+
|
|
54
|
+
Start with: "Find KGHM and show its latest quarterly results with report sources." Then ask for the EBITDA margin or the next 30 days of scheduled GPW reports.
|
|
67
55
|
|
|
68
|
-
|
|
56
|
+
A direct public call:
|
|
69
57
|
|
|
70
58
|
```bash
|
|
71
|
-
curl -
|
|
59
|
+
curl -sS https://agentrynku.pl/api/mcp \
|
|
72
60
|
-H 'Content-Type: application/json' \
|
|
73
61
|
-H 'Accept: application/json, text/event-stream' \
|
|
74
|
-
-d '{"jsonrpc":"2.0","id":1,"method":"tools/
|
|
62
|
+
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_quarterly_kpis","arguments":{"symbol":"KGHM","quartersBack":1}}}'
|
|
75
63
|
```
|
|
76
64
|
|
|
77
|
-
|
|
65
|
+
Public calls are rate limited and have a response-size limit. HTTP 429 includes `Retry-After`. Coverage is incomplete: an empty calendar does not prove there are no reports, and an empty WZA response does not prove a company pays no dividend. Ratios are based on individual quarterly reports, with scope stated per row; they are not TTM or price-based valuation multiples. Financials cover issuer reports and GPW announcements; portal databases and portal-sourced fields are excluded. Public price history and vendor dividend history are not offered.
|
|
78
66
|
|
|
79
|
-
|
|
80
|
-
|---|---|---|
|
|
81
|
-
| Quotes and market | 10 | `get_spot_price`, `get_intraday_quote`, `get_price_series`, `whats_moving_now`, `sector_pulse_pl` |
|
|
82
|
-
| Filings and reports | 10 | `get_news_history`, `get_report_event`, `get_quarterly_kpis`, `get_company_analysis`, `get_earnings_calendar` |
|
|
83
|
-
| Scores, screens and rankings | 10 | `get_stock_rankings`, `get_sygnal_score`, `find_opportunities`, `find_dip_candidates`, `run_predictive_scan` |
|
|
84
|
-
| Forecasts and drivers | 6 | `get_forecast`, `get_forecast_accuracy`, `get_drivers`, `get_factor_context` |
|
|
85
|
-
| Signals, alerts and events | 19 | `get_alerts`, `get_asset_signals`, `track_priced_event`, `create_decision_rule` |
|
|
86
|
-
| Portfolio and allocation | 15 | `get_portfolio_context`, `get_concentration_risk`, `recommend_position_size`, `modify_watchlist` |
|
|
87
|
-
| Transactions and tax | 5 | `get_realized_pnl`, `get_transaction_history`, `find_tlh_opportunities` |
|
|
88
|
-
| Market risk | 4 | `get_risk_regime`, `get_risk_dashboard`, `get_event_risks` |
|
|
89
|
-
| Catalyst bonds | 3 | `get_bond_series`, `get_bond_orderbook`, `calculate_early_redemption` |
|
|
90
|
-
| Account, brief and diagnostics | 11 | `get_daily_brief`, `query_companion`, `set_agent_prefs` |
|
|
67
|
+
## Additional tools with a key
|
|
91
68
|
|
|
92
|
-
|
|
69
|
+
Portfolio, alerts, forecasts, quotes and other functions require an account and API key from [settings](https://agentrynku.pl/settings). Anonymous `tools/list` returns the five public tools. Keyed discovery returns the tools permitted by that key's scopes. The [full catalog](TOOLS.md) contains the available functions and identifies the public subset.
|
|
93
70
|
|
|
94
|
-
|
|
71
|
+
For HTTP, add `Authorization: Bearer YOUR_KEY`. For the stdio bridge, add:
|
|
95
72
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
- Intraday quotes come from a delayed GPW feed (typically around 25 minutes behind).
|
|
73
|
+
```json
|
|
74
|
+
"env": { "AGENTRYNKU_API_KEY": "YOUR_KEY" }
|
|
75
|
+
```
|
|
100
76
|
|
|
101
|
-
|
|
77
|
+
The bridge validates a supplied key with one data call on startup. That check can consume an account allowance. It does not validate a key when none is supplied. Keep keys private: scopes can permit both reads and related writes.
|
|
102
78
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
79
|
+
Public calls without a key do not consume an account allowance. Keyed calls use 100 calls/month on FREE or 10,000 on PRO. `query_companion` also consumes an AI message. See [pricing](https://agentrynku.pl/cennik) and [account usage](https://agentrynku.pl/usage).
|
|
80
|
+
|
|
81
|
+
The server does not place orders or connect to a brokerage account. Source reports and many tool descriptions are in Polish. [English setup guide](https://agentrynku.pl/en/mcp), [Polish guide](https://agentrynku.pl/mcp), [methodology](https://agentrynku.pl/metodologia), [issues](https://github.com/krystiangw/agentrynku-mcp/issues).
|
|
106
82
|
|
|
107
83
|
## Po polsku
|
|
108
84
|
|
|
109
|
-
|
|
85
|
+
Dane GPW dla agenta bez konta i klucza: wyszukiwanie spółek, wyniki kwartalne, marże, publiczny kalendarz raportów i znane uchwały dywidendowe WZA. Podłącz klienta do `https://agentrynku.pl/api/mcp` bez nagłówka Authorization albo uruchom `npx -y agentrynku-mcp`.
|
|
86
|
+
|
|
87
|
+
Portfel, alerty, prognozy i notowania wymagają klucza. Klucz może dawać także prawa zapisu. Brak liczby nie oznacza zera, a brak znanego terminu nie oznacza braku raportu lub dywidendy. [Instrukcja i katalog](https://agentrynku.pl/mcp).
|
|
110
88
|
|
|
111
|
-
|
|
112
|
-
2. Podłącz klienta pod adres `https://agentrynku.pl/api/mcp` z nagłówkiem `Authorization: Bearer TWOJ_KLUCZ` (przykłady wyżej). Klient, który umie uruchomić tylko lokalne polecenie (np. Claude Desktop), użyje tej paczki: `npx -y agentrynku-mcp` ze zmienną `AGENTRYNKU_API_KEY`.
|
|
89
|
+
## Verification
|
|
113
90
|
|
|
114
|
-
|
|
91
|
+
In this repository, after `npm ci`, run `npm run test:live` to check the live HTTP endpoint and the stdio bridge without a key. It reads public KGHM results and checks that a private write is rejected. To test a development endpoint: `npm run test:live -- http://localhost:3104/api/mcp`.
|
|
115
92
|
|
|
116
93
|
## License
|
|
117
94
|
|
|
118
|
-
The bridge code and
|
|
95
|
+
The bridge code and documentation are MIT licensed. Data returned by the server is subject to the [Agent Rynku terms](https://agentrynku.pl/regulamin).
|
package/TOOLS.md
CHANGED
|
@@ -1,166 +1,151 @@
|
|
|
1
1
|
# Tools / Narzędzia
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
|
10
|
-
|
|
11
|
-
| `
|
|
12
|
-
| `
|
|
13
|
-
| `
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
| `sector_pulse_pl` | Puls sektorów GPW: które radzą sobie dziś lepiej, a które gorzej. |
|
|
19
|
-
| `whats_moving_now` | Co się dziś rusza na rynku - największe zmiany sesji. |
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
|
27
|
-
|
|
28
|
-
| `
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
31
|
-
| `
|
|
32
|
-
| `
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
37
|
-
| `
|
|
38
|
-
|
|
39
|
-
##
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
|
44
|
-
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
| `
|
|
48
|
-
| `
|
|
49
|
-
| `
|
|
50
|
-
| `
|
|
51
|
-
| `
|
|
52
|
-
| `
|
|
53
|
-
| `
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
|
61
|
-
|
|
62
|
-
| `get_forecast` | Prognoza wyników spółki na najbliższe kwartały
|
|
63
|
-
| `get_forecast_accuracy` | Historyczna celność modeli prognostycznych i to, czy model przeszedł bramkę jakości. |
|
|
64
|
-
| `
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
|
74
|
-
|
|
75
|
-
| `
|
|
76
|
-
| `
|
|
77
|
-
| `get_total_portfolio_view` | Portfel zsumowany ze wszystkich rachunków maklerskich, przeliczony na jedną walutę. |
|
|
78
|
-
| `
|
|
79
|
-
| `
|
|
80
|
-
| `
|
|
81
|
-
| `
|
|
82
|
-
| `
|
|
83
|
-
| `
|
|
84
|
-
| `
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
|
99
|
-
|
|
100
|
-
| `
|
|
101
|
-
| `
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
|
108
|
-
|
|
109
|
-
| `
|
|
110
|
-
| `
|
|
111
|
-
| `
|
|
112
|
-
| `
|
|
113
|
-
| `
|
|
114
|
-
| `
|
|
115
|
-
| `
|
|
116
|
-
| `track_priced_event` | Zapisanie zdarzenia, którego wpływ na cenę chcesz rozliczyć później. |
|
|
117
|
-
| `
|
|
118
|
-
| `
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
|
123
|
-
|
|
124
|
-
| `
|
|
125
|
-
| `
|
|
126
|
-
| `
|
|
127
|
-
| `
|
|
128
|
-
|
|
129
|
-
##
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
|
134
|
-
|
|
135
|
-
| `
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
|
145
|
-
|
|
146
|
-
| `
|
|
147
|
-
| `
|
|
148
|
-
| `
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
Dzienna odprawa rynkowa, rozmowa z asystentem, ustawienia agenta oraz stan potoku danych.
|
|
153
|
-
|
|
154
|
-
| Tool | Opis (PL) |
|
|
155
|
-
|---|---|
|
|
156
|
-
| `get_daily_brief` | Odprawa na dziś: co się zmieniło w Twoim portfelu i na watchliście. |
|
|
157
|
-
| `query_companion` | Zapytanie do asystenta Agenta Rynku w języku naturalnym. |
|
|
158
|
-
| `submit_feature_request` | Zgłoszenie błędu, pomysłu albo brakujących danych do zespołu Agenta Rynku. |
|
|
159
|
-
| `claim_feature_request` | Wzięcie zgłoszenia do pracy albo oddanie go do kolejki. |
|
|
160
|
-
| `modify_chat_settings` | Ustawienia powiadomień: próg istotności, kanały, wyciszone klasy alertów. |
|
|
161
|
-
| `get_pipeline_health` | Stan potoków danych: świeżość źródeł, opóźnienia, awarie. |
|
|
162
|
-
| `set_agent_prefs` | Ustawienia zachowania agenta. |
|
|
163
|
-
| `modify_profile` | Zmiana profilu inwestora. |
|
|
164
|
-
| `list_feature_requests` | Lista zgłoszeń i ich stan. |
|
|
165
|
-
| `get_codex_pipeline_stats` | Statystyki potoku ekstrakcji danych ze sprawozdań. |
|
|
166
|
-
| `get_outcome_settlement_health` | Stan rozliczania wyników alertów i prognoz. |
|
|
3
|
+
98 tools from the server registry on 2026-10-04. Short Polish summaries are shown below. Anonymous discovery returns only these public tools: `get_quarterly_kpis`, `search_gpw_companies`, `get_public_earnings_calendar`, `get_financial_ratios`, `get_public_dividends`. Additional tools require a key and are filtered by its scopes. Some descriptions and source reports are in Polish.
|
|
4
|
+
|
|
5
|
+
## Notowania i rynek
|
|
6
|
+
|
|
7
|
+
| Tool | Access | Opis (PL) |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| `compare_symbols` | API key | Porównanie kilku spółek obok siebie. |
|
|
10
|
+
| `get_cross_market_peers` | API key | Odpowiedniki spółki na drugim rynku, z korelacją i różnicą wyceny - do porównania GPW z USA. |
|
|
11
|
+
| `get_dividends` | API key | Historia i znane przyszłe dywidendy spółki, z kwotą, datą, źródłem i świeżością. |
|
|
12
|
+
| `get_intraday_candles` | API key | Świece godzinowe z bieżącej i poprzednich sesji. |
|
|
13
|
+
| `get_intraday_quote` | API key | Kwotowanie w trakcie sesji: cena, otwarcie, zakres dnia, zmiana wobec zamknięcia. |
|
|
14
|
+
| `get_market_anomalies` | API key | Ruchy cen odstające od zwykłej zmienności spółki, wyłapane automatycznie. |
|
|
15
|
+
| `get_price_series` | API key | Świece OHLC i zmienność zrealizowana - do stop-lossów i wielkości pozycji. |
|
|
16
|
+
| `get_spot_price` | API key | Bieżąca cena jednej spółki, z informacją, czy pochodzi z zamknięcia, czy z kwotowania w trakcie sesji. |
|
|
17
|
+
| `search_gpw_companies` | Public | Wyszukiwanie spółek GPW po nazwie, tickerze, aliasie lub ISIN, bez konta i klucza. |
|
|
18
|
+
| `sector_pulse_pl` | API key | Puls sektorów GPW: które radzą sobie dziś lepiej, a które gorzej. |
|
|
19
|
+
| `whats_moving_now` | API key | Co się dziś rusza na rynku - największe zmiany sesji. |
|
|
20
|
+
|
|
21
|
+
## Raporty i komunikaty spółek
|
|
22
|
+
|
|
23
|
+
| Tool | Access | Opis (PL) |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| `get_company_analysis` | API key | Podgląd analizy fundamentalnej spółki. Pełna treść jest dostępna w PRO. |
|
|
26
|
+
| `get_company_dossier` | API key | Źródłowa pamięć decyzyjna: trwałe przewagi, słabości, otwarte ryzyka, potwierdzone wzorce i kontekst biznesowy. |
|
|
27
|
+
| `get_conference_reminders` | API key | Nadchodzące konferencje wynikowe spółek, które śledzisz. |
|
|
28
|
+
| `get_conference_summary` | API key | Streszczenie konferencji wynikowej: cytaty zarządu, prognozy i sygnały ostrzegawcze. |
|
|
29
|
+
| `get_earnings_calendar` | API key | Kalendarz zbliżających się raportów okresowych. |
|
|
30
|
+
| `get_earnings_deepdive` | API key | Pogłębione omówienie raportu kwartalnego: co zaskoczyło, co niepokoi, co zapowiedział zarząd. |
|
|
31
|
+
| `get_financial_ratios` | Public | Marże kwartalne i udział kapitału w aktywach, z formułą, okresem raportu i powodami braku wskaźnika. |
|
|
32
|
+
| `get_news_history` | API key | Historia depesz o spółce razem z ich oceną. |
|
|
33
|
+
| `get_public_dividends` | Public | Znane uchwały dywidendowe GPW z komunikatów WZA, z kwotą na akcję, walutą, terminami i źródłem. |
|
|
34
|
+
| `get_public_earnings_calendar` | Public | Publiczny kalendarz zapowiedzianych raportów GPW na najbliższe 90 dni, ze źródłem i datą pobrania. |
|
|
35
|
+
| `get_quarterly_kpis` | Public | Wyniki kwartalne spółki: przychód, zysk, bilans i przepływy, wraz z oceną jakości każdego wiersza. |
|
|
36
|
+
| `get_report_event` | API key | Jeden raport kwartalny jako zdarzenie: co mówi, co rozliczył, co zmienił, co zostaje otwarte, z wiekiem i źródłem każdej liczby. |
|
|
37
|
+
| `get_wza_summary` | API key | Streszczenie walnego zgromadzenia akcjonariuszy. |
|
|
38
|
+
|
|
39
|
+
## Oceny i rankingi
|
|
40
|
+
|
|
41
|
+
| Tool | Access | Opis (PL) |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| `find_dip_candidates` | API key | Spółki, które mocno spadły, ale fundamenty trzymają. |
|
|
44
|
+
| `find_opportunities` | API key | Wyszukiwanie okazji według zadanych kryteriów. |
|
|
45
|
+
| `find_overheat_candidates` | API key | Spółki, które urosły szybciej, niż uzasadniają to wyniki. |
|
|
46
|
+
| `get_ranking_performance` | API key | Jak ranking sprawdzał się w przeszłości. |
|
|
47
|
+
| `get_stock_rankings` | API key | Ranking spółek GPW według wybranego kryterium. |
|
|
48
|
+
| `get_sygnal_score` | API key | Ocena spółki z GPW. Dokładny wynik 0-100, wymiary i uzasadnienie są dostępne w PRO. Do oceny wchodzą tylko wymiary z dowodem, najwyżej sześć: Płynność pokazujemy osobno i nie punktujemy. |
|
|
49
|
+
| `get_top_opportunities` | API key | Ta sama lista spółek spoza portfela co w kafelku Top okazje na pulpicie. |
|
|
50
|
+
| `rank_revenue_growth` | API key | Ranking wzrostu przychodów. |
|
|
51
|
+
| `rank_thematic` | API key | Ranking spółek w obrębie wybranego motywu inwestycyjnego. |
|
|
52
|
+
| `run_predictive_scan` | API key | Skan spółek pod kątem zbliżających się raportów i przewidywanego zaskoczenia. |
|
|
53
|
+
| `screen_stocks` | API key | Przesiew spółek GPW po kapitalizacji, dynamice EBITDA lub przychodów r/r, powiadomieniach insiderów o nabyciu i wybiciu z maksimum na wolumenie; osobno spółki, których nie dało się ocenić. |
|
|
54
|
+
|
|
55
|
+
## Prognozy wyników
|
|
56
|
+
|
|
57
|
+
| Tool | Access | Opis (PL) |
|
|
58
|
+
|---|---|---|
|
|
59
|
+
| `get_drivers` | API key | Bieżące czynniki makro: surowce, waluty, stopy, nastroje na rynku amerykańskim. |
|
|
60
|
+
| `get_evaluation_outcomes` | API key | Rozliczenie dawnych alertów po cenach: co się sprawdziło, a co nie, na tle indeksu. |
|
|
61
|
+
| `get_factor_context` | API key | Zmiana wybranego czynnika makro dla spółki z udokumentowanym źródłem i ekspozycją. |
|
|
62
|
+
| `get_forecast` | API key | Prognoza wyników spółki na najbliższe kwartały. Wycena modelowa jest dostępna w PRO. |
|
|
63
|
+
| `get_forecast_accuracy` | API key | Historyczna celność modeli prognostycznych i to, czy model przeszedł bramkę jakości. |
|
|
64
|
+
| `macro_attribution` | API key | Co najprawdopodobniej stało za ostatnim ruchem WIG20. |
|
|
65
|
+
|
|
66
|
+
## Portfel i alokacja
|
|
67
|
+
|
|
68
|
+
| Tool | Access | Opis (PL) |
|
|
69
|
+
|---|---|---|
|
|
70
|
+
| `analyze_thesis_exposure` | API key | Rozkład portfela na ogniwa łańcucha wartości AI - gdzie masz ekspozycję, a gdzie dziurę. |
|
|
71
|
+
| `compare_portfolio_risk_reward` | API key | Ranking pozycji i watchlisty według relacji zysku do ryzyka. |
|
|
72
|
+
| `get_concentration_risk` | API key | Ile portfela stoi na jednej spółce, sektorze i rynku. |
|
|
73
|
+
| `get_portfolio_analytics` | API key | Krzywa kapitału portfela dzień po dniu, ze stopą zwrotu, obsunięciem, zmiennością i porównaniem z WIG-iem lub S&P 500. |
|
|
74
|
+
| `get_portfolio_context` | API key | Obraz portfela użytkownika: pozycje, gotówka, watchlista z oceną analityka i powodem obserwacji, cele alokacji. Analiza i wycena wymagają PRO. |
|
|
75
|
+
| `get_portfolio_stats` | API key | Statystyki ryzyka i wyniku portfela liczone z historii transakcji. |
|
|
76
|
+
| `get_portfolio_value_history` | API key | Historia wartości portfela w czasie. |
|
|
77
|
+
| `get_total_portfolio_view` | API key | Portfel zsumowany ze wszystkich rachunków maklerskich, przeliczony na jedną walutę. |
|
|
78
|
+
| `modify_holdings` | API key | Ręczna zmiana pozycji w portfelu. |
|
|
79
|
+
| `modify_watchlist` | API key | Dodanie lub usunięcie spółki z watchlisty. |
|
|
80
|
+
| `recommend_diversification` | API key | Propozycje dywersyfikacji tam, gdzie portfel jest skupiony. |
|
|
81
|
+
| `recommend_position_size` | API key | Podpowiedź wielkości pozycji z uwzględnieniem zmienności i koncentracji portfela. Wycena wymaga PRO. |
|
|
82
|
+
| `set_cash_balance` | API key | Ustawienie salda gotówki na rachunku. |
|
|
83
|
+
| `submit_portfolio_snapshot` | API key | Wgranie stanu rachunku z zewnętrznego brokera. |
|
|
84
|
+
| `suggest_order_size` | API key | Wielkość zlecenia z uwzględnieniem dostępnej gotówki na konkretnym rachunku. |
|
|
85
|
+
|
|
86
|
+
## Transakcje i podatki
|
|
87
|
+
|
|
88
|
+
| Tool | Access | Opis (PL) |
|
|
89
|
+
|---|---|---|
|
|
90
|
+
| `analyze_trade_outcome` | API key | Rozliczenie pojedynczej transakcji: co wyszło, a co nie. |
|
|
91
|
+
| `find_tlh_opportunities` | API key | Pozycje ze stratą, którą da się odliczyć od podatku w tym roku. |
|
|
92
|
+
| `get_realized_pnl` | API key | Zrealizowany wynik od początku roku i okazje do rozliczenia strat podatkowych. |
|
|
93
|
+
| `get_transaction_history` | API key | Historia transakcji użytkownika, od najnowszej. |
|
|
94
|
+
| `submit_broker_transactions` | API key | Wgranie historii transakcji do rozliczeń i podatków. |
|
|
95
|
+
|
|
96
|
+
## Sygnały, alerty i zdarzenia
|
|
97
|
+
|
|
98
|
+
| Tool | Access | Opis (PL) |
|
|
99
|
+
|---|---|---|
|
|
100
|
+
| `cancel_priced_event` | API key | Odwołanie śledzonego zdarzenia. |
|
|
101
|
+
| `create_decision_rule` | API key | Utworzenie reguły decyzyjnej, która ma pilnować warunku za Ciebie. |
|
|
102
|
+
| `delete_decision_rule` | API key | Usunięcie reguły decyzyjnej. |
|
|
103
|
+
| `get_activity_feed` | API key | Ostatnie zdarzenia na Twoim koncie. |
|
|
104
|
+
| `get_alert_delivery_stats` | API key | Statystyki dostarczania alertów: ile poszło, ile się nie udało. |
|
|
105
|
+
| `get_alerts` | API key | Alerty dostarczone temu użytkownikowi, z filtrami po spółce i klasyfikacji. |
|
|
106
|
+
| `get_asset_signals` | API key | Szanse i ryzyka wykryte automatycznie dla spółki, każde z podpiętym dowodem w danych. |
|
|
107
|
+
| `get_my_alert_performance` | API key | Skuteczność alertów, które dostałeś: ile się sprawdziło. |
|
|
108
|
+
| `get_priced_events` | API key | Lista śledzonych zdarzeń wycenionych. |
|
|
109
|
+
| `get_signal_prediction_performance` | API key | Celność liczbowych przewidywań ruchu ceny: trafienia, kierunek, średni błąd. |
|
|
110
|
+
| `historical_event_hit_rate` | API key | Jak podobne zdarzenia wpływały na cenę w przeszłości. |
|
|
111
|
+
| `list_decision_rule_proposals` | API key | Propozycje reguł decyzyjnych wynikające z Twojego zachowania. |
|
|
112
|
+
| `list_decision_rules` | API key | Lista Twoich reguł decyzyjnych. |
|
|
113
|
+
| `list_webhook_events` | API key | Zdarzenia z webhooka - do sprawdzenia, czy TradingView dochodzi do Agenta Rynku. |
|
|
114
|
+
| `resolve_priced_event_now` | API key | Natychmiastowe rozliczenie zdarzenia po bieżącej cenie. |
|
|
115
|
+
| `submit_alert_feedback` | API key | Ocena alertu - ten sam sygnał, co kciuki w Telegramie. |
|
|
116
|
+
| `track_priced_event` | API key | Zapisanie zdarzenia, którego wpływ na cenę chcesz rozliczyć później. |
|
|
117
|
+
| `update_decision_rule` | API key | Zmiana reguły decyzyjnej. |
|
|
118
|
+
| `update_priced_event` | API key | Zmiana szczegółów śledzonego zdarzenia. |
|
|
119
|
+
|
|
120
|
+
## Ryzyko rynkowe
|
|
121
|
+
|
|
122
|
+
| Tool | Access | Opis (PL) |
|
|
123
|
+
|---|---|---|
|
|
124
|
+
| `get_event_risks` | API key | Kalendarz zdarzeń makro, które mogą poruszyć rynkiem. |
|
|
125
|
+
| `get_risk_dashboard` | API key | Zbiorczy obraz ryzyka rynkowego: jego poziom i aktywne motywy razem. |
|
|
126
|
+
| `get_risk_regime` | API key | Ryzyko rynkowe: spokój, lekka nerwowość, silna nerwowość czy kryzys. |
|
|
127
|
+
| `get_risk_themes` | API key | Motywy ryzyka aktywne w tej chwili. |
|
|
128
|
+
|
|
129
|
+
## Obligacje Catalyst
|
|
130
|
+
|
|
131
|
+
| Tool | Access | Opis (PL) |
|
|
132
|
+
|---|---|---|
|
|
133
|
+
| `calculate_early_redemption` | API key | Rachunek opłacalności wcześniejszego wykupu obligacji. |
|
|
134
|
+
| `get_bond_orderbook` | API key | Arkusz zleceń dla obligacji - na razie niedostępny, zwraca informację o odroczeniu. |
|
|
135
|
+
| `get_bond_series` | API key | Wyszukiwanie serii obligacji z Catalyst po emitencie, marży i terminie wykupu. |
|
|
136
|
+
|
|
137
|
+
## Konto, odprawa i diagnostyka
|
|
138
|
+
|
|
139
|
+
| Tool | Access | Opis (PL) |
|
|
140
|
+
|---|---|---|
|
|
141
|
+
| `claim_feature_request` | API key | Wzięcie zgłoszenia do pracy albo oddanie go do kolejki. |
|
|
142
|
+
| `get_codex_pipeline_stats` | API key | Statystyki potoku ekstrakcji danych ze sprawozdań. |
|
|
143
|
+
| `get_daily_brief` | API key | Odprawa na dziś: co się zmieniło w Twoim portfelu i na watchliście. |
|
|
144
|
+
| `get_outcome_settlement_health` | API key | Stan rozliczania wyników alertów i prognoz. |
|
|
145
|
+
| `get_pipeline_health` | API key | Stan potoków danych: świeżość źródeł, opóźnienia, awarie. |
|
|
146
|
+
| `list_feature_requests` | API key | Lista zgłoszeń i ich stan. |
|
|
147
|
+
| `modify_chat_settings` | API key | Ustawienia powiadomień: próg istotności, kanały, wyciszone klasy alertów. |
|
|
148
|
+
| `modify_profile` | API key | Zmiana profilu inwestora. |
|
|
149
|
+
| `query_companion` | API key | Zapytanie do asystenta Agenta Rynku w języku naturalnym. |
|
|
150
|
+
| `set_agent_prefs` | API key | Ustawienia zachowania agenta. |
|
|
151
|
+
| `submit_feature_request` | API key | Zgłoszenie błędu, pomysłu albo brakujących danych do zespołu Agenta Rynku. |
|
package/bin/agentrynku-mcp.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const { spawn } = require("node:child_process");
|
|
9
|
+
const { createInterface } = require("node:readline");
|
|
9
10
|
|
|
10
11
|
const URL = process.env.AGENTRYNKU_MCP_URL || "https://agentrynku.pl/api/mcp";
|
|
11
12
|
const key = (process.env.AGENTRYNKU_API_KEY || "").trim();
|
|
@@ -16,9 +17,13 @@ function fail(message) {
|
|
|
16
17
|
process.exit(1);
|
|
17
18
|
}
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const PUBLIC_TOOLS = new Set([
|
|
21
|
+
"search_gpw_companies", "get_quarterly_kpis", "get_financial_ratios",
|
|
22
|
+
"get_public_earnings_calendar", "get_public_dividends",
|
|
23
|
+
]);
|
|
24
|
+
const endpoint = new global.URL(URL);
|
|
25
|
+
if (endpoint.protocol !== "https:" && !(endpoint.protocol === "http:" && ["localhost", "127.0.0.1", "[::1]"].includes(endpoint.hostname))) fail("use HTTPS, or HTTP on localhost for development");
|
|
26
|
+
if (/[\r\n]/.test(key)) fail("the API key contains an invalid line break");
|
|
22
27
|
|
|
23
28
|
// initialize and tools/list answer without a valid key, so a wrong key would
|
|
24
29
|
// only show up at the first tool call, where a 401 sends mcp-remote into an
|
|
@@ -49,16 +54,35 @@ async function checkKey() {
|
|
|
49
54
|
}
|
|
50
55
|
|
|
51
56
|
async function main() {
|
|
52
|
-
await checkKey();
|
|
57
|
+
if (key) await checkKey();
|
|
53
58
|
const proxy = require.resolve("mcp-remote/dist/proxy.js");
|
|
54
59
|
// The key stays out of the process arguments: mcp-remote expands
|
|
55
60
|
// ${AGENTRYNKU_API_KEY} from the environment the child inherits.
|
|
56
61
|
const child = spawn(
|
|
57
62
|
process.execPath,
|
|
58
|
-
[proxy, URL, "--transport", "http-only", "--header", "Authorization:Bearer ${AGENTRYNKU_API_KEY}"],
|
|
59
|
-
{ stdio: "inherit", env: { ...process.env, AGENTRYNKU_API_KEY: key } },
|
|
63
|
+
[proxy, URL, "--transport", "http-only", ...(key ? ["--header", "Authorization:Bearer ${AGENTRYNKU_API_KEY}"] : [])],
|
|
64
|
+
{ stdio: ["pipe", "pipe", "inherit"], env: { ...process.env, AGENTRYNKU_API_KEY: key } },
|
|
60
65
|
);
|
|
61
66
|
|
|
67
|
+
createInterface({ input: child.stdout }).on("line", (line) => process.stdout.write(line + "\n"));
|
|
68
|
+
child.stdin.on("error", () => {});
|
|
69
|
+
const input = createInterface({ input: process.stdin });
|
|
70
|
+
input.on("line", (line) => {
|
|
71
|
+
let request;
|
|
72
|
+
try { request = JSON.parse(line); } catch { child.stdin.write(line + "\n"); return; }
|
|
73
|
+
// A stale client catalog must not turn a missing API key into an OAuth browser flow.
|
|
74
|
+
const allowed = request && (request.method === "initialize" || request.method === "tools/list" || request.method === "ping" ||
|
|
75
|
+
(typeof request.method === "string" && request.method.startsWith("notifications/")) || (request.method === "tools/call" && PUBLIC_TOOLS.has(request.params?.name)));
|
|
76
|
+
if (!key && !allowed) {
|
|
77
|
+
if (request?.id !== undefined) process.stdout.write(JSON.stringify({ jsonrpc: "2.0", id: request.id, error: {
|
|
78
|
+
code: -32001, message: "This function requires an API key. Set AGENTRYNKU_API_KEY from https://agentrynku.pl/settings, then restart the bridge.",
|
|
79
|
+
} }) + "\n");
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
child.stdin.write(line + "\n");
|
|
83
|
+
});
|
|
84
|
+
input.on("close", () => child.stdin.end());
|
|
85
|
+
|
|
62
86
|
for (const sig of ["SIGINT", "SIGTERM"]) process.on(sig, () => child.kill(sig));
|
|
63
87
|
child.on("exit", (code, signal) => {
|
|
64
88
|
if (signal) {
|
package/examples/claude-code.sh
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
3
|
-
claude mcp add --transport http agentrynku https://agentrynku.pl/api/mcp
|
|
4
|
-
--header "Authorization: Bearer ${AGENTRYNKU_API_KEY:?set AGENTRYNKU_API_KEY}"
|
|
2
|
+
# Connects to public GPW data without a key.
|
|
3
|
+
claude mcp add --transport http agentrynku https://agentrynku.pl/api/mcp
|
package/examples/cursor-mcp.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentrynku-mcp",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "MCP
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "GPW MCP data without an account: quarterly financials, ratios, company search, earnings calendar and WZA dividends. Optional API key for additional tools. Stdio bridge to Agent Rynku.",
|
|
5
5
|
"mcpName": "pl.agentrynku/gpw",
|
|
6
6
|
"bin": {
|
|
7
7
|
"agentrynku-mcp": "bin/agentrynku-mcp.js"
|
|
@@ -40,5 +40,11 @@
|
|
|
40
40
|
"url": "https://github.com/krystiangw/agentrynku-mcp/issues"
|
|
41
41
|
},
|
|
42
42
|
"author": "Agent Rynku (https://agentrynku.pl)",
|
|
43
|
-
"license": "MIT"
|
|
43
|
+
"license": "MIT",
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@modelcontextprotocol/sdk": "^1.32.0"
|
|
46
|
+
},
|
|
47
|
+
"scripts": {
|
|
48
|
+
"test:live": "node test/live-smoke.mjs"
|
|
49
|
+
}
|
|
44
50
|
}
|